Sitelet https://github.com/nodejs/node/issues/43638
Skip to content

Investigate flaky test-gc-http-client-timeout #43638

Description

@F3n67u

Test

test-gc-http-client-timeout

Platform

freebsd

Console output

not ok 873 parallel/test-gc-http-client-timeout
  ---
  duration_ms: 0.546
  severity: fail
  exitcode: 1
  stack: |-
    node:events:515
          throw er; // Unhandled 'error' event
          ^
    
    Error: connect ECONNRESET 127.0.0.1:52005 - Local (127.0.0.1:53767)
        at internalConnect (node:net:999:16)
        at defaultTriggerAsyncIdScope (node:internal/async_hooks:464:18)
        at GetAddrInfoReqWrap.emitLookup [as callback] (node:net:1145:9)
        at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:113:8)
    Emitted 'error' event on ClientRequest instance at:
        at Socket.socketErrorListener (node:_http_client:472:9)
        at Socket.emit (node:events:537:28)
        at emitErrorNT (node:internal/streams/destroy:151:8)
        at emitErrorCloseNT (node:internal/streams/destroy:116:3)
        at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
      errno: -54,
      code: 'ECONNRESET',
      syscall: 'connect',
      address: '127.0.0.1',
      or...

Build links

Additional information

No response

Activity

  1. added
    flaky-testIssues and PRs involving tests that fail intermittently in CI.
    on Jul 1, 2022
  2. F3n67u commented on Jul 1, 2022

    @F3n67u
    Author
  3. tniessen commented on Jul 23, 2022

    @tniessen
    Member

    Related: #43956

  4. F3n67u commented on Jul 24, 2022

    @F3n67u
    ContributorAuthor

    Another failure

    Build link: https://ci.nodejs.org/job/node-test-binary-armv7l/1095/RUN_SUBSET=js,label=debian10-armv7l/testReport/junit/(root)/test/parallel_test_gc_http_client_timeout/

    Console output:

    done/collected/total: 93/0/804
    done/collected/total: 322/93/804
    done/collected/total: 415/322/804
    done/collected/total: 664/349/804
    done/collected/total: 737/415/804
    done/collected/total: 804/664/804
    done/collected/total: 804/737/804
    done/collected/total: 804/804/804
    node:_http_server:498
        connections[i].socket.destroy();
                              ^
    
    TypeError: Cannot read properties of null (reading 'destroy')
        at Server.closeIdleConnections (node:_http_server:498:27)
        at Server.close (node:_http_server:481:8)
        at Immediate.status (/home/iojs/build/workspace/node-test-binary-armv7l/test/parallel/test-gc-http-client-timeout.js:66:14)
        at process.processImmediate (node:internal/timers:471:21)
    
    Node.js v19.0.0-pre
    

    This failure is caused by #43522

    This error case is fixed by #43949.

    But the Error: connect ECONNRESET is still probably will happen, so I leave this issue open temporarily.

  5. theanarkh commented on Jul 25, 2022

    @theanarkh
    Contributor

    I think Error: connect ECONNRESET is triggered when the number of parallel connection is too many. By controlling this may fix it.

  6. nicksia-vgw commented on Aug 5, 2022

    @nicksia-vgw
    Contributor

    I was able to replicate this issue by increasing the number of calls to getAll() as @theanarkh suggested, on MacOS 12.4.

    Setting the number of calls to ~50 meant the test failed with Error: connect ECONNRESET almost 100% of the time.

    Update: It's not just this test - when running tools/test.py sequential with just the set of test-gc-http-client*.js tests, its pretty random which test script fails.

    The number of requests produced is non-deterministic, and will sometimes produce enough requests to trigger the error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    flaky-testIssues and PRs involving tests that fail intermittently in CI.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions