-
Notifications
You must be signed in to change notification settings - Fork 30.7k
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
Intermittent hangs with 10.16.1 #28932
Comments
Here's my experiment on some GCE virtual machines:
Note the entropy value of 5 at the time of the hang. |
I think this is openssl/openssl#9078 / openssl/openssl#9084, and cherry-picking the latter would resolve this? |
I believe so. I will try this out in the failing environment tomorrow. |
I'm pretty sure I already saw an issue here about this a few days ago. Edit: forget it, it was before 10.16.1 |
Should we escalate a 10.16.2 to fix this? @ofrobots is there an easy way to test if I can get an rc together? |
/cc @nodejs/lts |
Original commit message: Revert the DEVRANDOM_WAIT feature The DEVRANDOM_WAIT feature added a select() call to wait for the `/dev/random` device to become readable before reading from the `/dev/urandom` device. It was introduced in commit 38023b8 in order to mitigate the fact that the `/dev/urandom` device does not block until the initial seeding of the kernel CSPRNG has completed, contrary to the behaviour of the `getrandom()` system call. It turned out that this change had negative side effects on the performance which were not acceptable. After some discussion it was decided to revert this feature and leave it up to the OS resp. the platform maintainer to ensure a proper initialization during early boot time. Fixes 9078 This partially reverts commit 38023b8. Refs: openssl/openssl#9084 Fixes: nodejs#28932
Original commit message: Revert the DEVRANDOM_WAIT feature The DEVRANDOM_WAIT feature added a select() call to wait for the `/dev/random` device to become readable before reading from the `/dev/urandom` device. It was introduced in commit 38023b8 in order to mitigate the fact that the `/dev/urandom` device does not block until the initial seeding of the kernel CSPRNG has completed, contrary to the behaviour of the `getrandom()` system call. It turned out that this change had negative side effects on the performance which were not acceptable. After some discussion it was decided to revert this feature and leave it up to the OS resp. the platform maintainer to ensure a proper initialization during early boot time. Fixes 9078 This partially reverts commit 38023b8. Refs: openssl/openssl#9084 Fixes: #28932 PR-URL: #28983 Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Beth Griggs <Bethany.Griggs@uk.ibm.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This should be fixed with the v10.16.2 release, please reopen if not. |
@ofrobots I am curious which linux version did you use where the available entropy |
This was a Ubuntu instance IIRC. |
I ask because the code with the code with the select should not be executed unless the |
The other way round I observed a similar behaviour that you described, when |
Over at Google Cloud we are noticing intermittent hangs on some virtual machines with the latest 10.16.1. This is likely due to the OpenSSL upgrade due to 1.1.1c (see openssl/openssl#9078).
Hangs seem to coincide with when the system has low-entropy and has the following stack:
The text was updated successfully, but these errors were encountered: