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-crypto-dh-leak #21076

Closed
Trott opened this issue Jun 1, 2018 · 9 comments
Closed

investigate flaky parallel/test-crypto-dh-leak #21076

Trott opened this issue Jun 1, 2018 · 9 comments
Labels
crypto Issues and PRs related to the crypto subsystem. flaky-test Issues and PRs related to the tests with unstable failures on the CI.

Comments

@Trott
Copy link
Member

Trott commented Jun 1, 2018

  • Version: v11.0.0-pre (master)
  • Platform: ubuntu1604_sharedlibs_debug_x64
  • Subsystem: test crypto

https://ci.nodejs.org/job/node-test-commit-linux-containered/4846/nodes=ubuntu1604_sharedlibs_debug_x64/console

03:13:14 not ok 414 parallel/test-crypto-dh-leak
03:13:14   ---
03:13:14   duration_ms: 2.717
03:13:14   severity: fail
03:13:14   exitcode: 1
03:13:14   stack: |-
03:13:14     assert.js:270
03:13:14         throw err;
03:13:14         ^
03:13:14     
03:13:14     AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
03:13:14     
03:13:14       assert(after - before < 5 << 20)
03:13:14     
03:13:14         at Object.<anonymous> (/home/iojs/build/workspace/node-test-commit-linux-containered/nodes/ubuntu1604_sharedlibs_debug_x64/test/parallel/test-crypto-dh-leak.js:26:1)
03:13:14         at Module._compile (internal/modules/cjs/loader.js:702:30)
03:13:14         at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
03:13:14         at Module.load (internal/modules/cjs/loader.js:612:32)
03:13:14         at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
03:13:14         at Function.Module._load (internal/modules/cjs/loader.js:543:3)
03:13:14         at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
03:13:14         at startup (internal/bootstrap/node.js:261:19)
03:13:14         at bootstrapNodeJSCore (internal/bootstrap/node.js:595:3)
03:13:14   ...
@Trott Trott added crypto Issues and PRs related to the crypto subsystem. flaky-test Issues and PRs related to the tests with unstable failures on the CI. labels Jun 1, 2018
@Trott
Copy link
Member Author

Trott commented Jun 1, 2018

@nodejs/crypto @nodejs/build @nodejs/testing

@Trott
Copy link
Member Author

Trott commented Jun 1, 2018

This comment above the assertion that's failing suggests that this may be inherently unreliable?

// RSS should stay the same, ceteris paribus, but allow for
// some slop because V8 mallocs memory during execution.

@ryzokuken
Copy link
Contributor

@Trott if definitely doesn't fail on MacOS. I'll try to look into it.

@ryzokuken
Copy link
Contributor

// RSS should stay the same, ceteris paribus, but allow for
// some slop because V8 mallocs memory during execution.

Shouldn't this comment be improved? Of all things: why is there latin in there?

@bnoordhuis
Copy link
Member

Because being a programmer doesn't mean you can't be well-versed in the liberal arts too. Ceteris paribus means "all other things being equal" but with fewer words.

Is the ./configure --debug buildbot the only one where it fails? If yes, I would guess that V8's debug bookkeeping slanting the numbers.

@tniessen
Copy link
Member

tniessen commented Jun 1, 2018

We might be able to circumvent that by massively increasing the number of iterations and slightly increasing the amount of permitted RSS difference.

@Trott
Copy link
Member Author

Trott commented Jun 1, 2018

Other options:

We could check process.config.target_defaults.default_configuration and skip the test if it's not 'Release'. h/t @danbev

Or @tniessen is suggesting we could remove the test entirely as it was for a very specific regression.

Thoughts? @bnoordhuis

@tniessen
Copy link
Member

tniessen commented Jun 1, 2018

On my maschine, the debug build allocates 4.8MB of the 5MB limit, but that value does not increase when I increase the number of iterations, so #21076 (comment) could work.

tniessen pushed a commit to tniessen/node that referenced this issue Jun 1, 2018
bnoordhuis added a commit to bnoordhuis/io.js that referenced this issue Jun 2, 2018
bnoordhuis added a commit to bnoordhuis/io.js that referenced this issue Jun 2, 2018
It transpires that the extra bookkeeping in debug builds sometimes makes
the increase in RSS go _just_ over the 5 MB limit, by fewer than 100 kB.
Double the limit so we hopefully don't run into it any time again soon.

The memory leak it tests for was one where RSS grew by hundreds of
megabytes over the lifetime of the test; 5 vs. 10 MB is insignificant.

Fixes: nodejs#21076
Trott pushed a commit to Trott/io.js that referenced this issue Jun 3, 2018
Refs: nodejs#21076

PR-URL: nodejs#21080
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Anatoli Papirovski <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Yuta Hiroto <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
@Trott Trott closed this as completed in 997e97d Jun 3, 2018
MylesBorins pushed a commit that referenced this issue Jun 6, 2018
Refs: #21076

PR-URL: #21080
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Anatoli Papirovski <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Yuta Hiroto <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
MylesBorins pushed a commit that referenced this issue Jun 6, 2018
It transpires that the extra bookkeeping in debug builds sometimes makes
the increase in RSS go _just_ over the 5 MB limit, by fewer than 100 kB.
Double the limit so we hopefully don't run into it any time again soon.

The memory leak it tests for was one where RSS grew by hundreds of
megabytes over the lifetime of the test; 5 vs. 10 MB is insignificant.

Fixes: #21076

PR-URL: #21080
Refs: #21076
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Anatoli Papirovski <[email protected]>
Reviewed-By: Сковорода Никита Андреевич <[email protected]>
Reviewed-By: Yuta Hiroto <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crypto Issues and PRs related to the crypto subsystem. flaky-test Issues and PRs related to the tests with unstable failures on the CI.
Projects
None yet
Development

No branches or pull requests

4 participants