-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
fix test-readline-interface #14681
fix test-readline-interface #14681
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM pending CI
arm-fanned is green! Ci is effectively green. (Only failure is that vexing C++ test failure on armv7-wheezy.) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I starting to RC Collaborators, since our review process is getting watered down.
// Flags: --expose_internals | ||
'use strict'; | ||
require('../common'); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please comment what this tests, and why is it in /sequential/
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// These test cases are in `sequential` rather than the analogous test file in
// `parallel` because they become unrelaible under load. The unreliability under
// load was determined empirically when the test cases were in `parallel` by
// running:
// tools/test.py -j 96 --repeat 192 test/parallel/test-readline-interface.js
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK it should be in the code, not just in GitHub 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's puzzling. I must have force-pushed it out at some point...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Argh! I overwrote the commit message change I did for @bnoordhuis too. The joys of having two laptops and forgetting to fetch before starting work, I imagine...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, all fixes have been re-fixed.
@Trott is moving to sequential actually necessary after the first adjustments? I think we might not need that, libuv’s |
Could use more detail. What problems, what load or constrained resources? |
@addaleax Without the third commit, here's the sorts of failures those two test cases get (that were moved to $ tools/test.py -j 96 --repeat 192 test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bat'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:262:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bat'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bat'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'baz'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'baz'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'baz'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1032
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:287:10)
at Interface._line (readline.js:642:8)
at Interface._ttyWrite (readline.js:929:16)
at FakeInput.onkeypress (readline.js:165:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
[00:09|% 100|+ 160|- 32]: Done
$ The changes to |
@bnoordhuis The problem was diagnosed (and the solution prposed) by @addaleax in #14674 (comment):
As for load, I tend to simulate by running many test processes simultaneously which seems to pretty reliably predict (or retroactively "predict") what tests are unreliable in CI: $ tools/test.py -j 96 --repeat 192 test/parallel/test-foo-bar.js |
Right, I mean the commit log could go into more detail. I kind of gleaned what you wrote from the linked issue but it's better for the commit log to document that. |
@bnoordhuis Updated commit message.
|
c4a660e
to
3fd215c
Compare
Using Date.now() introduces problems when operating under load or otherwise with constrained resources. Use Timer.now() to mitigate. The problem was identified in `test-readline-interface` where under heavy load, `\r` and `\n` were received so far apart that they were treated as separate line endings rather than a single line ending. Switching to `Timer.now()` prevented this from happening. Refs: nodejs#14674
Two test cases in `test-readline-interface` are sensitive to resource constraints (probably due to `\r` and `\n` not arriving within the appropriate delay to be treated as a single line ending). Move those tests to `sequential`. Fixes: nodejs#14674
@refack f11379d seems to fix the flakiness on Raspberry Pi 1 in CI, but there is still unreliability when the test is run under load, which is what this PR addresses. $ tools/test.py -j 96 --repeat 192 test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:262:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
assert.js:42
throw new errors.AssertionError({
^
AssertionError [ERR_ASSERTION]: 2 === 1
at Timeout.common.mustCall (/Users/trott/io.js/test/parallel/test-readline-interface.js:349:14)
at Timeout._onTimeout (/Users/trott/io.js/test/common/index.js:509:15)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:262:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:262:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
=== release test-readline-interface ===
Path: parallel/test-readline-interface
readline.js:1030
throw err;
^
AssertionError [ERR_ASSERTION]: '' === 'bar'
at Interface.<anonymous> (/Users/trott/io.js/test/parallel/test-readline-interface.js:245:14)
at emitOne (events.js:115:13)
at Interface.emit (events.js:210:7)
at Interface._onLine (readline.js:285:10)
at Interface._line (readline.js:640:8)
at Interface._ttyWrite (readline.js:927:16)
at FakeInput.onkeypress (readline.js:163:10)
at emitTwo (events.js:125:13)
at FakeInput.emit (events.js:213:7)
at emitKeys (internal/readline.js:420:14)
Command: out/Release/node --expose_internals /Users/trott/io.js/test/parallel/test-readline-interface.js
[00:08|% 100|+ 176|- 16]: Done
$ (With the changes in this PR, the test passes with the above command line.) |
AIX failure is almost certainly unrelated, but just in case... |
Using Date.now() introduces problems when operating under load or otherwise with constrained resources. Use Timer.now() to mitigate. The problem was identified in `test-readline-interface` where under heavy load, `\r` and `\n` were received so far apart that they were treated as separate line endings rather than a single line ending. Switching to `Timer.now()` prevented this from happening. PR-URL: nodejs#14681 Refs: nodejs#14674 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
Two test cases in `test-readline-interface` are sensitive to resource constraints (probably due to `\r` and `\n` not arriving within the appropriate delay to be treated as a single line ending). Move those tests to `sequential`. PR-URL: nodejs#14681 Fixes: nodejs#14674 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
Using Date.now() introduces problems when operating under load or otherwise with constrained resources. Use Timer.now() to mitigate. The problem was identified in `test-readline-interface` where under heavy load, `\r` and `\n` were received so far apart that they were treated as separate line endings rather than a single line ending. Switching to `Timer.now()` prevented this from happening. PR-URL: #14681 Refs: #14674 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
Two test cases in `test-readline-interface` are sensitive to resource constraints (probably due to `\r` and `\n` not arriving within the appropriate delay to be treated as a single line ending). Move those tests to `sequential`. PR-URL: #14681 Fixes: #14674 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
Should this be backported to |
First commit is from #14677 and I will remove it and rebase if that PR lands before this one (which I imagine it will).SecondFirst commit (h/t @addaleax):ThirdSecond commit:Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesAffected core subsystem(s)
test readline