You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test: is sequential/test-fs-watch flaky on macOS #12900
@aashil it did. You can try something like python tools/test.py --mode=release --repeat=10000 sequential/test-fs-watch and see if it starts failing after a couple of minutes of running. However, a better strategy might be to examine its source code and try to find out the reason analytically and not empirically.
I can replicate the issue reasonably reliably by doing the following:
copy the test into test/parallel
run with tools/test.py --mode=release --repeat=64 -j 16 test/parallel/test-fs-watch.js
When I run it that way, it runs successfully a lot but also times out a lot.
I have not investigated further at this time, but this all suggests that the test is flaky when the system is under load and/or when the test is competing with other processes for specific resources.
@Trott@refack@aqrln Shouldn't the behavior of the test be the same when running via tools/test.py and running via a script which runs ./node test/sequential/test-fs-watch.js given number of times? With the latter approach I have console.log statements set up at different points which would help me identify which command in the test times out but, the tests never time out, which makes me think if the timeout is specific to calling via tools/test.py Do you have an alternative or a better approach to debug the test?
@Trott@refack@aqrln Shouldn't the behavior of the test be the same when running via tools/test.py and running via a script which runs ./node test/sequential/test-fs-watch.js given number of times?
@aashil No. tools/test.py --mode=release --repeat=64 -j 16 test/parallel/test-fs-watch.js will run those tests in parallel. ./node test/sequential/test-fs-watch.js a given number of times will run them sequentially.
@aashil besides that, right, it is tools/test.py watching that a test does not exceed the maximal timeframe. However, you can see if it would fail because of that even without the test harness, because if a test fails with timeout, it usually means that it has hung.
Activity
aashil commentedon May 8, 2017
I would like to work on this issue.
refack commentedon May 8, 2017
@aashil Go for it 🥇
aashil commentedon May 15, 2017
@refack I tried running this test using
./node test/sequential/test-fs-watch.jsand I got nothing. I assume the test ran with no errors?aqrln commentedon May 15, 2017
@aashil it did. You can try something like
python tools/test.py --mode=release --repeat=10000 sequential/test-fs-watchand see if it starts failing after a couple of minutes of running. However, a better strategy might be to examine its source code and try to find out the reason analytically and not empirically.refack commentedon May 15, 2017
Since it was a timeout issue that happens only occasionally, it might be hard to reproduce empirically...
Trott commentedon May 15, 2017
I can replicate the issue reasonably reliably by doing the following:
test/paralleltools/test.py --mode=release --repeat=64 -j 16 test/parallel/test-fs-watch.jsWhen I run it that way, it runs successfully a lot but also times out a lot.
I have not investigated further at this time, but this all suggests that the test is flaky when the system is under load and/or when the test is competing with other processes for specific resources.
aashil commentedon May 15, 2017
I was able to replicate the issue after suggestions from @aqrln and @Trott I will look into this in more detail.
aashil commentedon May 16, 2017
@Trott @refack @aqrln Shouldn't the behavior of the test be the same when running via
tools/test.pyand running via a script which runs./node test/sequential/test-fs-watch.jsgiven number of times? With the latter approach I haveconsole.logstatements set up at different points which would help me identify which command in the test times out but, the tests never time out, which makes me think if the timeout is specific to calling via tools/test.py Do you have an alternative or a better approach to debug the test?Trott commentedon May 16, 2017
@aashil No.
tools/test.py --mode=release --repeat=64 -j 16 test/parallel/test-fs-watch.jswill run those tests in parallel../node test/sequential/test-fs-watch.jsa given number of times will run them sequentially.aqrln commentedon May 16, 2017
@aashil besides that, right, it is
tools/test.pywatching that a test does not exceed the maximal timeframe. However, you can see if it would fail because of that even without the test harness, because if a test fails with timeout, it usually means that it has hung.MylesBorins commentedon May 16, 2017
looks like we might have an AIX failure for this on v6.x
https://ci.nodejs.org/job/node-test-commit-aix/5888/nodes=aix61-ppc64/console
gibfahn commentedon May 18, 2017
For posterity this turned out to be unrelated (see #13070)
refack commentedon Jun 27, 2017
Stress
macOS: https://ci.nodejs.org/job/node-stress-single-test/1312/nodes=osx1010/Stress
AIX: https://ci.nodejs.org/job/node-stress-single-test/1311/nodes=aix61-ppc64/refack commentedon Jun 28, 2017
Stress passed (when run as parallel with refack@63ef897):
macOS:
AIX:
Closing for now