-
Notifications
You must be signed in to change notification settings - Fork 114
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
Sometimes blocks when launched via NickelMenu #117
Comments
Can you try using Also, does this also happen if you use cmd_output and |
Here's the relevant excerpt from the output of
The call that blocks is |
That seems to be blocking due to low entropy before falling back to weaker random numbers. How long have you booted for? Also, can you record the value of /proc/sys/kernel/random/entropy_avail every second or so starting from right after Nickel's launch? Although, I wonder what's needing truly random numbers in Plato... I suspect it's another thread doing it rather than the JSON parser. |
I'm afraid it might be the fancy hasher I'm using for the DB's hash map. |
So probably shepmaster/twox-hash#13. |
I've had to neuter an OpenSSL feature after a similar issue: koreader/koreader-base#1099 |
I thought it wasn't worth reporting a bug, since the trace is clearly reflecting the behavior of the The fact that the function might block is also acknowledged. I've decided, as consequence, to replace things that might directly or indirectly depend on |
Yeah, I'm no expert, but what's surprising is the amount of time it can block, and the fact that it does so long after the early boot. Might be worse just after a resume from suspend? |
Well, on most devices there are more sources of entropy, but the Kobo is pretty bare-bones. And, the lib does use GRND_NONBLOCK (and from a quick look, would fall back to pseudo random numbers afterwards), but that's only supported on 3.14+, so it falls back to a blocking random read. |
I've tried launching Plato via NickelMenu using the following entry:
And it sometimes results in Plato blocking (for a minute or so) on this line! What blocks in
load_json
is the second line.The text was updated successfully, but these errors were encountered: