-
Notifications
You must be signed in to change notification settings - Fork 29.9k
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
test: refactor test-fs-watch #4776
Conversation
* Exchange 20 millisecond timers for setImmediate(). * Do not attempt to unlink path that will have been guaranteed to be removed by `common.refreshTmpDir()` * Do not swallow errors thrown by failed creation of needed test subdirectory. If that happens, we want to know about it. * Use `common.isSunOS` in one place where it is applicable
CI: https://ci.nodejs.org/job/node-test-pull-request/1312/ I started looking at the test because it timed out on FreeBSD in a CI run with an unrelated change. If nothing else, this change does eliminate some error-swallowing which might mean we get more info if it fails again. |
This is a test I see fail pretty regularly locally. Pulled down the changes and haven't seen a fail yet. Awesome job @Trott!!! LGTM if CI is happy |
This is great! Without this patch the test is failing in my One question: does this mean a timer ( Probably the same fix could be applied for #4629 and other |
LGTM. Maybe run the CI again though. |
@santigimeno A
@cjihrig While all the CI failures are build failures unrelated to the test, I sure do like green, so let's try again: |
CI is green. \o/ |
@Trott I see, thanks for the info. |
Can you confirm that it's the |
@Trott I can confirm that in a
|
@santigimeno And the failure is that the test hangs/times out? Or is there an assertion error or something? |
@santigimeno If it helps clarify things, The problem with this theory is that I haven't located the asynchronous code in |
@santigimeno Oh, wait, yeah, you identify the delay/asynchronous issue in #4629. Seems at least plausible to me. |
* Exchange 20 millisecond timers for setImmediate(). * Do not attempt to unlink path that will have been guaranteed to be removed by `common.refreshTmpDir()` * Do not swallow errors thrown by failed creation of needed test subdirectory. If that happens, we want to know about it. * Use `common.isSunOS` in one place where it is applicable PR-URL: nodejs#4776 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Evan Lucas <[email protected]>
Landed in d26b014 |
@Trott The failure was indeed a timeout. |
I've got this error on
Something interesting is that when this test failed, in the same run also failed |
@santigimeno That's odd. Perhaps it might be a good idea to isolate the three tests in |
@Trott ... see any pressing need to backport this to LTS? |
@jasnell Pressing need? No. But it if the commit merges cleanly, it's probably better to have it in LTS than not. |
+1... watch label added |
* Exchange 20 millisecond timers for setImmediate(). * Do not attempt to unlink path that will have been guaranteed to be removed by `common.refreshTmpDir()` * Do not swallow errors thrown by failed creation of needed test subdirectory. If that happens, we want to know about it. * Use `common.isSunOS` in one place where it is applicable PR-URL: #4776 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Evan Lucas <[email protected]>
* Exchange 20 millisecond timers for setImmediate(). * Do not attempt to unlink path that will have been guaranteed to be removed by `common.refreshTmpDir()` * Do not swallow errors thrown by failed creation of needed test subdirectory. If that happens, we want to know about it. * Use `common.isSunOS` in one place where it is applicable PR-URL: #4776 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Evan Lucas <[email protected]>
* Exchange 20 millisecond timers for setImmediate(). * Do not attempt to unlink path that will have been guaranteed to be removed by `common.refreshTmpDir()` * Do not swallow errors thrown by failed creation of needed test subdirectory. If that happens, we want to know about it. * Use `common.isSunOS` in one place where it is applicable PR-URL: nodejs#4776 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Evan Lucas <[email protected]>
setImmediate()
.removed by
common.refreshTmpDir()
subdirectory. If that happens, we want to know about it.
common.isSunOS
in one place where it is applicable