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 test-fs-read-buffer-tostring-fail on Raspberry Pi #7042

Closed
Trott opened this issue May 29, 2016 · 8 comments
Closed

Investigate flaky test-fs-read-buffer-tostring-fail on Raspberry Pi #7042

Trott opened this issue May 29, 2016 · 8 comments
Labels
arm Issues and PRs related to the ARM platform. fs Issues and PRs related to the fs subsystem / file system. test Issues and PRs related to the tests.

Comments

@Trott
Copy link
Member

Trott commented May 29, 2016

https://ci.nodejs.org/job/node-test-binary-arm/2326/RUN_SUBSET=2,label=pi1-raspbian-wheezy/console

not ok 45 parallel/test-fs-read-buffer-tostring-fail
# (node:9636) DeprecationWarning: fs.read's legacy String interface is deprecated. Use the Buffer API as mentioned in the documentation instead.
# 
# /home/iojs/build/workspace/node-test-binary-arm/RUN_SUBSET/2/label/pi1-raspbian-wheezy/test/parallel/test-fs-read-buffer-tostring-fail.js:56
#   throw err;
#   ^
# AssertionError: '"toString()" failed' === 'EBUSY: resource busy or locked, read'
#     at /home/iojs/build/workspace/node-test-binary-arm/RUN_SUBSET/2/label/pi1-raspbian-wheezy/test/parallel/test-fs-read-buffer-tostring-fail.js:31:12
#     at /home/iojs/build/workspace/node-test-binary-arm/RUN_SUBSET/2/label/pi1-raspbian-wheezy/test/common.js:407:15
#     at callback (fs.js:663:23)
#     at FSReqWrap.wrapper [as oncomplete] (fs.js:681:17)
  ---
  duration_ms: 58.419
@Trott Trott added fs Issues and PRs related to the fs subsystem / file system. test Issues and PRs related to the tests. arm Issues and PRs related to the ARM platform. labels May 29, 2016
@rvagg
Copy link
Member

rvagg commented May 31, 2016

@Trott any other instances of this failure? It's possibly related to the Pi's all running their build/ directory on NFS, perhaps there was a momentary hiccup, I did have a whole lot of networking trouble a couple of days ago and had to shut everything down to deal with it, perhaps this is related.

@Trott
Copy link
Member Author

Trott commented May 31, 2016

@Trott any other instances of this failure?

Not that I've noticed, but I haven't been paying attention to specific failures on Raspberry Pi the last few days. I'll run a stress test and if it doesn't show any problems, then let's close this issue.

Stress test: https://ci.nodejs.org/job/node-stress-single-test/752/nodes=pi1-raspbian-wheezy/console

(Aside: These aren't really "stress tests" but I can't think of a better term that is sufficiently succinct. Suggestions welcome.)

@Trott
Copy link
Member Author

Trott commented Jun 1, 2016

Oof, that job went offline after 10 hours and it was still compiling. Let's try again and hope some of that compilation is cached...

https://ci.nodejs.org/job/node-stress-single-test/753/nodes=pi1-raspbian-wheezy/console

@Trott
Copy link
Member Author

Trott commented Jun 1, 2016

The test takes more than a minute to run on these devices, so I'm content with stopping it after 500 successful consecutive runs rather than waiting another 10 hours to get another 500 runs. Closing!

@Trott Trott closed this as completed Jun 1, 2016
@Trott
Copy link
Member Author

Trott commented Jun 30, 2016

Argh. It came back. https://ci.nodejs.org/job/node-test-binary-arm/2674/RUN_SUBSET=5,label=pi2-raspbian-wheezy/console

not ok 45 parallel/test-fs-read-buffer-tostring-fail
# TIMEOUT
# (node:28761) DeprecationWarning: fs.read's legacy String interface is deprecated. Use the Buffer API as mentioned in the documentation instead.
  ---
  duration_ms: 120.184

@Trott Trott reopened this Jun 30, 2016
@Trott
Copy link
Member Author

Trott commented Jul 5, 2016

Might the thing to do here be to check common.enoughTestMem and skip the test if there isn't enough memory? @nodejs/testing

@Trott
Copy link
Member Author

Trott commented Jul 7, 2016

It takes ~90s to run normally and the test runner times out at 120s. That seems like not a lot of headroom to me. I'm inclined to do the skip-based-on-memory thing as I imagine this is a memory-intensive test.

@Trott
Copy link
Member Author

Trott commented Jul 7, 2016

Proposed fix: #7575

Trott added a commit to Trott/io.js that referenced this issue Jul 7, 2016
The test is memory intensive and times out occasionally on Raspberry Pi
devices in CI. Successful test runs take about 90 seconds, but the
devices time out after 120 seconds. That's not a lot of headroom. So
let's skip the test on devices that have only modest amounts of memory.

Fixes: nodejs#7042
@Trott Trott closed this as completed in b9b49ee Jul 9, 2016
evanlucas pushed a commit that referenced this issue Jul 13, 2016
The test is memory intensive and times out occasionally on Raspberry Pi
devices in CI. Successful test runs take about 90 seconds, but the
devices time out after 120 seconds. That's not a lot of headroom. So
let's skip the test on devices that have only modest amounts of memory.

Fixes: #7042
PR-URL: #7575
Reviewed-By: Rod Vagg <[email protected]>
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arm Issues and PRs related to the ARM platform. fs Issues and PRs related to the fs subsystem / file system. test Issues and PRs related to the tests.
Projects
None yet
Development

No branches or pull requests

2 participants