镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Investigate flaky test-http-server-request-timeout-keepalive #42741

Description

@richardlau

Test

test-http-server-request-timeout-keepalive

Platform

FreeBSD, macOS

Console output

17:13:37 not ok 1424 parallel/test-http-server-request-timeout-keepalive
17:13:37   ---
17:13:37   duration_ms: 3.487
17:13:37   severity: fail
17:13:37   exitcode: 1
17:13:37   stack: |-
17:13:37     node:assert:123
17:13:37       throw new AssertionError(obj);
17:13:37       ^
17:13:37     
17:13:37     AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
17:13:37     + actual - expected
17:13:37     
17:13:37     + 'HTTP/1.1 200 OK\r\n' +
17:13:37     +   'Content-Type: text/plain\r\n' +
17:13:38     +   'Date: Thu, 14 Apr 2022 16:13:37 GMT\r\n' +
17:13:38     +   'Connection: close\r\n' +
17:13:38     +   'Transfer-Encoding: chunked\r\n' +
17:13:38     +   '\r\n' +
17:13:38     +   '0\r\n' +
17:13:38     +   '\r\n'
17:13:38     - ''
17:13:38         at Socket.<anonymous> (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd12-x64/test/parallel/test-http-server-request-timeout-keepalive.js:82:12)
17:13:38         at Socket.<anonymous> (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd12-x64/test/common/index.js:438:15)
17:13:38         at Socket.emit (node:events:539:35)
17:13:38         at endReadableNT (node:internal/streams/readable:1344:12)
17:13:38         at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
17:13:38       generatedMessage: true,
17:13:38       code: 'ERR_ASSERTION',
17:13:38       actual: 'HTTP/1.1 200 OK\r\n' +
17:13:38         'Content-Type: text/plain\r\n' +
17:13:38         'Date: Thu, 14 Apr 2022 16:13:37 GMT\r\n' +
17:13:38         'Connection: close\r\n' +
17:13:38         'Transfer-Encoding: chunked\r\n' +
17:13:38         '\r\n' +
17:13:38         '0\r\n' +
17:13:38         '\r\n',
17:13:38       expected: '',
17:13:38       operator: 'strictEqual'
17:13:38     }
17:13:38     
17:13:38     Node.js v18.0.0-pre
17:13:38   ...

Build links

Additional information

Test was recently updated by #41263.

cc @ShogunPanda

Activity

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

    @ShogunPanda
    Contributor

    I will take care of that tomorrow morning.

    Out of the box I just have to fine tune timers.

    @nodejs/build Can I get access to that BSD machine?

  3. added a commit that references this issue on Apr 25, 2022
  4. tniessen commented on Apr 25, 2022

    @tniessen
    Member

    Looks like #42846 reduced the error rate by some amount but it's still flaky. We can probably further increase the base timeout and see if that helps, even if the test will become unbearably slow.

  5. ShogunPanda commented on Apr 25, 2022

    @ShogunPanda
    Contributor

    I have a further change in #42812 which should reduce it even more.
    I'd suggest to wait for that to land and see what happens.

    Anyway given the success rate is above 99% I think we might think about closing this (since retries in CI are normal) and reopen only if there is consistent failure.

  6. richardlau commented on Apr 25, 2022

    @richardlau
    MemberAuthor

    I have a further change in #42812 which should reduce it even more. I'd suggest to wait for that to land and see what happens.

    Anyway given the success rate is above 99% I think we might think about closing this (since retries in CI are normal) and reopen only if there is consistent failure.

    This issue is tracking that the test is flaky, which it still appears to be so I'm reopening.

  7. tniessen commented on Apr 26, 2022

    @tniessen
    Member

    It's interesting that it seems to only happen on macOS and FreeBSD. I might run a few stress tests.

  8. tniessen commented on Apr 26, 2022

    @tniessen
    Member

    Patch (assuming the issue is timing-related):

    diff --git a/test/parallel/test-http-server-headers-timeout-keepalive.js b/test/parallel/test-http-server-headers-timeout-keepalive.js
    index 05531087ed83..ba82cb0e0c9c 100644
    --- a/test/parallel/test-http-server-headers-timeout-keepalive.js
    +++ b/test/parallel/test-http-server-headers-timeout-keepalive.js
    @@ -24,7 +24,7 @@ function performRequestWithDelay(client, firstDelay, secondDelay, closeAfter) {
       }, firstDelay + secondDelay).unref();
     }
     
    -const headersTimeout = common.platformTimeout(2000);
    +const headersTimeout = common.platformTimeout(5000);
     const server = createServer({
       headersTimeout,
       requestTimeout: 0,
    diff --git a/test/parallel/test-http-server-request-timeout-keepalive.js b/test/parallel/test-http-server-request-timeout-keepalive.js
    index 2466e1ee7a95..eb6d64b2f2bb 100644
    --- a/test/parallel/test-http-server-request-timeout-keepalive.js
    +++ b/test/parallel/test-http-server-request-timeout-keepalive.js
    @@ -24,7 +24,7 @@ function performRequestWithDelay(client, firstDelay, secondDelay, closeAfter) {
       }, firstDelay + secondDelay).unref();
     }
     
    -const requestTimeout = common.platformTimeout(2000);
    +const requestTimeout = common.platformTimeout(5000);
     const server = createServer({
       headersTimeout: 0,
       requestTimeout,

    First run (master and with patch):

    osx11 freebsd12-x64
    master OK: 902 NOT OK: 98 TOTAL: 1000 OK: 863 NOT OK: 137 TOTAL: 1000
    increased timeout OK: 676 NOT OK: 324 TOTAL: 1000 OK: 1000 NOT OK: 0 TOTAL: 1000

    Second run (master and with patch):

    osx11 freebsd12-x64
    master OK: 910 NOT OK: 90 TOTAL: 1000 OK: 819 NOT OK: 181 TOTAL: 1000
    increased timeout OK: 713 NOT OK: 287 TOTAL: 1000 OK: 1000 NOT OK: 0 TOTAL: 1000

    Unless I'm mistaken, increasing the timeout fixes the issues on FreeBSD but somehow makes it worse on macOS?

    I started a third run with fresh revisions because I find this hard to believe (master and with patch).

    Update: Third run (master and with patch):

    osx11 freebsd12-x64
    master OK: 916 NOT OK: 84 TOTAL: 1000 OK: 838 NOT OK: 162 TOTAL: 1000
    increased timeout OK: 721 NOT OK: 279 TOTAL: 1000 OK: 1000 NOT OK: 0 TOTAL: 1000
  9. tniessen commented on Apr 27, 2022

    @tniessen
    Member

    Median success rate (refer to patch and separate tables above):

    osx11 freebsd12-x64
    master (2000ms) 91.0 % 83.8 %
    patched (5000ms) 71.3 % 100 %
  10. ShogunPanda commented on Apr 27, 2022

    @ShogunPanda
    Contributor

    @richardlau Thanks, I think one commit closed this by mistake.

  11. 13 remaining items

  12. joyeecheung commented on May 12, 2022

    @joyeecheung
    Member

    It seems the flake is still there: nodejs/reliability#273

    Reason parallel/test-http-server-request-timeouts-mixed
    Type JS_TEST_FAILURE
    Failed PR 13 (#42960, #42963, #42623, #42968, #42867, #37769, #42423, #42601, #43005, #42970, #43036, #42725, #43023)
    Appeared test-orka-macos10.15-x64-1, test-macstadium-macos11.0-arm64-3, test-orka-macos11-x64-2, test-nearform-macos10.15-x64-1, test-orka-macos11-x64-1
    First CI https://ci.nodejs.org/job/node-test-pull-request/43865/
    Last CI https://ci.nodejs.org/job/node-test-pull-request/43960/
    Example
    not ok 1166 parallel/test-http-server-request-timeouts-mixed
      ---
      duration_ms: 3.255
      severity: fail
      exitcode: 1
      stack: |-
        node:assert:399
            throw err;
            ^
        
        AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
        
          assert(request2.completed)
        
            at Timeout._onTimeout (/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1015/test/parallel/test-http-server-request-timeouts-mixed.js:106:5)
            at listOnTimeout (node:internal/timers:564:17)
            at process.processTimers (node:internal/timers:507:7) {
          generatedMessage: true,
          code: 'ERR_ASSERTION',
          actual: false,
          expected: true,
          operator: '=='
        }
        
        Node.js v19.0.0-pre
      ...
    
    
  13. added a commit that references this issue on May 31, 2022
  14. reopened this on Jun 28, 2022
  15. LiviaMedeiros commented on Jun 28, 2022

    @LiviaMedeiros
    Member

    I just comprehended what had happened here.
    The issue was mistakenly closed by cross-connection via pushing in another repository a commit having Fixes: reference.
    The push contained up to 567 latest commits (starting from 2022-04-01) from node repository, rebased on top of test commits.

    Checking with curl https://github.com/proxy/api.github.com/users/LiviaMedeiros/events?per_page=100 | jq '.[]|select(.type=="IssuesEvent")' confirmed that only this issue was affected.

    I deeply apologize for this embarassing incident. In the future, I'll keep anything like that on a separate GitHub account.
    Please let me know if there are other side effects or something to undo.

    @aduh95 thanks for reopening this.
    Pinging you as a TSC member (if I made a mistake is applicable).

  16. targos commented on Sep 28, 2022

    @targos
    Member

    I got a failure in #44741 (comment)

  17. aduh95 commented on Jun 17, 2024

    @aduh95
    Contributor

    Getting some failures again on osx11 ([test-http-server-request-timeouts-mixed](https://ci.nodejs.org/job/node-test-pull-request/59813/, https://ci.nodejs.org/job/node-test-pull-request/59820/)

  18. github-actions commented on Jun 25, 2026

    @github-actions
    Contributor

    This issue has been marked as stale due to 210 days of inactivity.
    It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.

  19. added
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Jun 25, 2026
  20. github-actions commented on Jul 26, 2026

    @github-actions
    Contributor

    This issue has been automatically closed after 30 days of inactivity following its stale status (no activity for a total of 120 days).
    If this is still relevant, feel free to reopen it or leave a comment with additional details so we can continue the discussion.

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.staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions