Skip to content

Running benchmark/http/headers.js fails with HPE_HEADER_OVERFLOW #31022

@trivikr

Description

@trivikr
  • Version: master, v12.14.0, v10.18.0
  • Platform: Ubuntu
  • Subsystem: http

Describe the bug
Running benchmark/http/headers.js fails with HPE_HEADER_OVERFLOW for:

  • master
  • v12.14.0
  • v10.18.0

To Reproduce
Follow instructions in running benchmarks to run benchmark/http/headers.js

Example:

$ node -v
v12.14.0

$ node benchmark/http/headers.js 
http/headers.js len=1 n=10 benchmarker="test-double-http": 15,309
http/headers.js len=100 n=10 benchmarker="test-double-http": 1,974
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: Parse Error: Header overflow
    at Socket.socketOnData (_http_client.js:456:22)
    at Socket.emit (events.js:210:5)
    at addChunk (_stream_readable.js:309:12)
    at readableAddChunk (_stream_readable.js:290:11)
    at Socket.Readable.push (_stream_readable.js:224:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:182:23)
Emitted 'error' event on ClientRequest instance at:
    at Socket.socketOnData (_http_client.js:463:9)
    at Socket.emit (events.js:210:5)
    [... lines matching original stack trace ...]
    at TCP.onStreamRead (internal/stream_base_commons.js:182:23) {
  bytesParsed: 9458,
  code: 'HPE_HEADER_OVERFLOW',
  reason: 'Header overflow',
  rawPacket: <Buffer 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d 0a 43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 6b 65 65 70 2d 61 6c 69 76 65 0d 0a 54 72 61 6e 73 66 65 72 2d ... 21838 more bytes>
}
Error: test-double-http failed with 1.
    at ChildProcess.<anonymous> (/home/trivikr/workspace/node/benchmark/_http-benchmarkers.js:229:16)
    at Object.onceWrapper (events.js:300:26)
    at ChildProcess.emit (events.js:210:5)
    at maybeClose (internal/child_process.js:1021:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)

$ nvm use 10
Now using node v10.18.0 (npm v6.13.4)

$ node benchmark/http/headers.js 
http/headers.js len=1 n=10 benchmarker="test-double-http": 1,658
http/headers.js len=100 n=10 benchmarker="test-double-http": 1,678
events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: Parse Error
    at Socket.socketOnData (_http_client.js:442:20)
    at Socket.emit (events.js:198:13)
    at addChunk (_stream_readable.js:287:12)
    at readableAddChunk (_stream_readable.js:268:11)
    at Socket.Readable.push (_stream_readable.js:223:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:94:17)
Emitted 'error' event at:
    at Socket.socketOnData (_http_client.js:448:9)
    at Socket.emit (events.js:198:13)
    [... lines matching original stack trace ...]
    at TCP.onStreamRead (internal/stream_base_commons.js:94:17)
Error: test-double-http failed with 1.
    at ChildProcess.child.once (/home/trivikr/workspace/node/benchmark/_http-benchmarkers.js:229:16)
    at Object.onceWrapper (events.js:286:20)
    at ChildProcess.emit (events.js:198:13)
    at maybeClose (internal/child_process.js:982:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)

Expected behavior
The benchmark/http/headers.js runs without any error

Additional context
I came across this issue as part of running benchmarks while moving to for...of loop in the initial commits of #30958

Metadata

Metadata

Assignees

No one assigned

    Labels

    benchmarkIssues and PRs related to the benchmark subsystem.httpIssues or PRs related to the http subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions