Uh oh!
There was an error while loading. Please reload this page.
fix test-readline-interface - #14681
Conversation
Trott
commented
Aug 8, 2017
arm-fanned is green! Ci is effectively green. (Only failure is that vexing C++ test failure on armv7-wheezy.) |
refack
left a comment
There was a problem hiding this comment.
I starting to RC Collaborators, since our review process is getting watered down.
There was a problem hiding this comment.
Please comment what this tests, and why is it in /sequential/.
There was a problem hiding this comment.
// 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.
AFAIK it should be in the code, not just in GitHub 🤔
There was a problem hiding this comment.
That's puzzling. I must have force-pushed it out at some point...
There was a problem hiding this comment.
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.
OK, all fixes have been re-fixed.
addaleax
commented
Aug 8, 2017
@Trott is moving to sequential actually necessary after the first adjustments? I think we might not need that, libuv’s |
bnoordhuis
commented
Aug 8, 2017
Could use more detail. What problems, what load or constrained resources? |
Trott
commented
Aug 8, 2017
@addaleax Without the third commit, here's the sorts of failures those two test cases get (that were moved to Details$ tools/test.py -j 96 --repeat 192 test/parallel/test-readline-interface.js === release test-readline-interface === Path: parallel/test-readline-interfaceassert.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-interfacereadline.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-interfacereadline.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-interfaceassert.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-interfacereadline.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-interfacereadline.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfacereadline.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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 |
Trott
commented
Aug 8, 2017
@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 |
bnoordhuis
commented
Aug 8, 2017
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. |
Trott
commented
Aug 8, 2017
@bnoordhuis Updated commit message. |
c4a660e to
3fd215cComparerefack
commented
Aug 8, 2017
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
@refackf11379d 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. Details$ tools/test.py -j 96 --repeat 192 test/parallel/test-readline-interface.js === release test-readline-interface === Path: parallel/test-readline-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfaceassert.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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-interfacereadline.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.) |
Trott
commented
Aug 10, 2017
Trott
commented
Aug 10, 2017
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 <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
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#14681Fixes: nodejs#14674 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
Trott
commented
Aug 10, 2017
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 <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
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: #14681Fixes: #14674 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
MylesBorins
commented
Sep 19, 2017
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