Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

investigate flaky parallel/test-http-writable-true-after-close on macOS #15700

Closed
Trott opened this issue Sep 30, 2017 · 6 comments
Closed

investigate flaky parallel/test-http-writable-true-after-close on macOS #15700

Trott opened this issue Sep 30, 2017 · 6 comments
Labels
flaky-test Issues and PRs related to the tests with unstable failures on the CI. http Issues or PRs related to the http subsystem. macos Issues and PRs related to the macOS platform / OSX. test Issues and PRs related to the tests.

Comments

@Trott
Copy link
Member

Trott commented Sep 30, 2017

  • Version: v9.0.0-pre
  • Platform: macOS
  • Subsystem: test

https://ci.nodejs.org/job/node-test-commit-osx/12717/nodes=osx1010/console

not ok 757 parallel/test-http-writable-true-after-close
  ---
  duration_ms: 0.195
  severity: fail
  stack: |-
    Mismatched <anonymous> function calls. Expected exactly 1, actual 0.
        at Object.exports.mustCall (/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1010/test/common/index.js:485:10)
        at ClientRequest.common.mustCall (/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1010/test/parallel/test-http-writable-true-after-close.js:16:29)
        at ClientRequest.<anonymous> (/Users/iojs/build/workspace/node-test-commit-osx/nodes/osx1010/test/common/index.js:517:15)
        at Object.onceWrapper (events.js:316:30)
        at emitOne (events.js:115:13)
        at ClientRequest.emit (events.js:210:7)
        at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:548:21)
        at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
        at Socket.socketOnData (_http_client.js:437:20)

This test was only recently adjusted for CentOS 5. See #15505 and #15520

Ping @mcollina

@Trott Trott added flaky-test Issues and PRs related to the tests with unstable failures on the CI. http Issues or PRs related to the http subsystem. macos Issues and PRs related to the macOS platform / OSX. test Issues and PRs related to the tests. labels Sep 30, 2017
@mcollina
Copy link
Member

I propose we remove that test. We would be a little less covered, but maintaining it is probably not worth it.

@Trott
Copy link
Member Author

Trott commented Sep 30, 2017

@mcollina It looks like there's support for removing CentOS 5 from the test cluster for 8.x.x and newer (which presumably would also mean master). See nodejs/build#898

If that happens, might it make sense to put the test back to the simpler way it was initially and see if that's robust/reliable?

@Trott
Copy link
Member Author

Trott commented Sep 30, 2017

(Another option: Mark the test as flaky everywhere. If it turns a build yellow, we'll still notice it, and I and some other folks do review the tests-marked-as-flaky from time to time.)

@Trott
Copy link
Member Author

Trott commented Sep 30, 2017

I'm able to reproduce the flakiness locally on my macOS laptop, but it takes a lot of runs and high concurrency:

$ tools/test.py -j 96 --repeat 1920 test/parallel/test-http-writable-true-after-close.js 
=== release test-http-writable-true-after-close ===                     
Path: parallel/test-http-writable-true-after-close
Mismatched <anonymous> function calls. Expected exactly 1, actual 0.
    at Object.exports.mustCall (/Users/trott/io.js/test/common/index.js:485:10)
    at ClientRequest.common.mustCall (/Users/trott/io.js/test/parallel/test-http-writable-true-after-close.js:16:29)
    at ClientRequest.<anonymous> (/Users/trott/io.js/test/common/index.js:517:15)
    at Object.onceWrapper (events.js:316:30)
    at emitOne (events.js:115:13)
    at ClientRequest.emit (events.js:210:7)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:548:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:116:23)
    at Socket.socketOnData (_http_client.js:437:20)
Command: out/Release/node /Users/trott/io.js/test/parallel/test-http-writable-true-after-close.js
[01:32|% 100|+ 1919|-   1]: Done                                        
$ 

Would be curious if Linux laptops and other operating systems show the same issue. This issue might be a simpler race condition or something than what we were seeing with CentOS 5 (which was a reliable failure and not intermittent flakiness like this). If so, moving the test to sequential seems a likely fix.

@Trott
Copy link
Member Author

Trott commented Oct 1, 2017

Update: The idea of reverting to the previous version of the test doesn't appear to be the way to go. That test is much more flaky under high concurrency (in local testing) than the current version.

tools/test.py -j 96 --repeat 9999 test/parallel/test-http-writable-true-after-close.js had 15 failures in the previous version, while the same command had only 5 failures with the current version.

Running the test 9999 times with -j 1 had no failures locally for me.

Therefore, I think moving the test to sequential is the way to go. I'll open a pull request for that now.

Trott added a commit to Trott/io.js that referenced this issue Oct 1, 2017
test-https-writable-true-after-close fails intermittently when run with
a lot of competing processes. Move it to sequential for stability.

Fixes: nodejs#15700
@Trott
Copy link
Member Author

Trott commented Oct 1, 2017

#15705

MylesBorins pushed a commit that referenced this issue Oct 3, 2017
test-https-writable-true-after-close fails intermittently when run with
a lot of competing processes. Move it to sequential for stability.

PR-URL: #15705
Fixes: #15700
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
MylesBorins pushed a commit that referenced this issue Oct 3, 2017
test-https-writable-true-after-close fails intermittently when run with
a lot of competing processes. Move it to sequential for stability.

PR-URL: #15705
Fixes: #15700
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
addaleax pushed a commit to addaleax/ayo that referenced this issue Oct 4, 2017
test-https-writable-true-after-close fails intermittently when run with
a lot of competing processes. Move it to sequential for stability.

PR-URL: nodejs/node#15705
Fixes: nodejs/node#15700
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
MylesBorins pushed a commit that referenced this issue Oct 11, 2017
test-https-writable-true-after-close fails intermittently when run with
a lot of competing processes. Move it to sequential for stability.

PR-URL: #15705
Fixes: #15700
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Minwoo Jung <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Daniel Bevenius <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flaky-test Issues and PRs related to the tests with unstable failures on the CI. http Issues or PRs related to the http subsystem. macos Issues and PRs related to the macOS platform / OSX. test Issues and PRs related to the tests.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants