Bug 1690364 - rngd fails to stop
Summary: rngd fails to stop
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: rng-tools
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Neil Horman
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1706432 (view as bug list)
Depends On:
Blocks: 1713629
TreeView+ depends on / blocked
 
Reported: 2019-03-19 10:37 UTC by Zbigniew Jędrzejewski-Szmek
Modified: 2019-09-06 19:34 UTC (History)
17 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1713629 (view as bug list)
Environment:
Last Closed: 2019-09-06 19:34:43 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Zbigniew Jędrzejewski-Szmek 2019-03-19 10:37:58 UTC
Description of problem:
$ journalctl -b-1 -u rngd
-- Logs begin at Mon 2019-03-18 14:30:04 CET, end at Tue 2019-03-19 11:34:55 CET. --
Mar 19 11:29:43 workstation2 systemd[1]: Started Hardware RNG Entropy Gatherer Daemon.
Mar 19 11:29:43 workstation2 rngd[792]: Initalizing available sources
Mar 19 11:29:43 workstation2 rngd[792]: Initalizing entropy source hwrng
Mar 19 11:29:43 workstation2 rngd[792]: Enabling RDSEED rng support
Mar 19 11:29:43 workstation2 rngd[792]: Initalizing entropy source rdrand
Mar 19 11:29:47 workstation2 rngd[792]: Initalizing AES buffer
Mar 19 11:29:47 workstation2 rngd[792]: Enabling JITTER rng support
Mar 19 11:29:47 workstation2 rngd[792]: Initalizing entropy source jitter
Mar 19 11:29:47 workstation2 rngd[792]: PKCS11 Engine /usr/lib64/opensc-pkcs11.so Error: No such file or directory
Mar 19 11:29:47 workstation2 rngd[792]: Failed to init entropy source pkcs11
Mar 19 11:29:59 workstation2 systemd[1]: Stopping Hardware RNG Entropy Gatherer Daemon...
Mar 19 11:31:30 workstation2 systemd[1]: rngd.service: State 'stop-sigterm' timed out. Killing.
Mar 19 11:31:30 workstation2 systemd[1]: rngd.service: Killing process 792 (rngd) with signal SIGKILL.
Mar 19 11:31:30 workstation2 systemd[1]: rngd.service: Main process exited, code=killed, status=9/KILL
Mar 19 11:31:30 workstation2 systemd[1]: rngd.service: Failed with result 'timeout'.
Mar 19 11:31:30 workstation2 systemd[1]: Stopped Hardware RNG Entropy Gatherer Daemon.

Version-Release number of selected component (if applicable):
rng-tools-6.7-1.fc30.x86_64

How reproducible:
Not repeatable, maybe it's some race condition?

Comment 1 Neil Horman 2019-03-19 13:58:10 UTC
hmm, I would agree its likely a race condition, possibly blocking in the jitter rng, waiting for one of the pipe writer threads to return for an exit, but I can't immediately see how.  If you are able, I suggest you modify the unit file to enable debugging (-d) on the rngd exec line, and if it happens again, send in the full log.  That will give us a better clue as to whats going on here.

Comment 2 Zbigniew Jędrzejewski-Szmek 2019-03-25 21:15:13 UTC
I haven't seen this since. Since it's most likely a race, and seemingly one hard to hit at that, let's close. If it happens again, I'll reopen with more info.

Comment 3 Zbigniew Jędrzejewski-Szmek 2019-04-04 16:15:45 UTC
I'm seeing this on my laptop now too:
$ journalctl -u rngd

Mar 29 16:04:28 krowka systemd[1]: Started Hardware RNG Entropy Gatherer Daemon.
Mar 29 16:04:28 krowka rngd[1189]: Initalizing available sources
Mar 29 16:04:28 krowka rngd[1189]: Failed to init entropy source hwrng
Mar 29 16:04:28 krowka rngd[1189]: Enabling RDSEED rng support
Mar 29 16:04:28 krowka rngd[1189]: Initalizing entropy source rdrand
Mar 29 16:04:32 krowka rngd[1189]: Initalizing AES buffer
Mar 29 16:04:32 krowka rngd[1189]: Enabling JITTER rng support
Mar 29 16:04:32 krowka rngd[1189]: Initalizing entropy source jitter
Mar 29 16:04:32 krowka rngd[1189]: PKCS11 Engine /usr/lib64/opensc-pkcs11.so Error: No such file or directory
Mar 29 16:04:32 krowka rngd[1189]: Failed to init entropy source pkcs11
Apr 02 15:09:07 krowka systemd[1]: Stopping Hardware RNG Entropy Gatherer Daemon...
Apr 02 15:10:37 krowka systemd[1]: rngd.service: State 'stop-sigterm' timed out. Killing.
Apr 02 15:10:37 krowka systemd[1]: rngd.service: Killing process 1189 (rngd) with signal SIGKILL.
Apr 02 15:10:37 krowka systemd[1]: rngd.service: Main process exited, code=killed, status=9/KILL
Apr 02 15:10:37 krowka systemd[1]: rngd.service: Failed with result 'timeout'.
Apr 02 15:10:37 krowka systemd[1]: Stopped Hardware RNG Entropy Gatherer Daemon.
Apr 02 15:10:37 krowka systemd[1]: rngd.service: Consumed 1min 4.897s CPU time.


Apr 02 16:01:07 krowka systemd[1]: Started Hardware RNG Entropy Gatherer Daemon.
Apr 02 16:01:07 krowka rngd[1238]: Initalizing available sources
Apr 02 16:01:07 krowka rngd[1238]: Failed to init entropy source hwrng
Apr 02 16:01:07 krowka rngd[1238]: Enabling RDSEED rng support
Apr 02 16:01:07 krowka rngd[1238]: Initalizing entropy source rdrand
Apr 02 16:01:13 krowka rngd[1238]: Initalizing AES buffer
Apr 02 16:01:13 krowka rngd[1238]: Enabling JITTER rng support
Apr 02 16:01:13 krowka rngd[1238]: Initalizing entropy source jitter
Apr 02 16:01:13 krowka rngd[1238]: PKCS11 Engine /usr/lib64/opensc-pkcs11.so Error: No such file or directory
Apr 02 16:01:13 krowka rngd[1238]: Failed to init entropy source pkcs11
Apr 04 16:24:29 krowka systemd[1]: Stopping Hardware RNG Entropy Gatherer Daemon...
Apr 04 16:25:59 krowka systemd[1]: rngd.service: State 'stop-sigterm' timed out. Killing.
Apr 04 16:25:59 krowka systemd[1]: rngd.service: Killing process 1238 (rngd) with signal SIGKILL.
Apr 04 16:25:59 krowka systemd[1]: rngd.service: Main process exited, code=killed, status=9/KILL
Apr 04 16:25:59 krowka systemd[1]: rngd.service: Failed with result 'timeout'.
Apr 04 16:25:59 krowka systemd[1]: Stopped Hardware RNG Entropy Gatherer Daemon.
Apr 04 16:25:59 krowka systemd[1]: rngd.service: Consumed 3min 52.770s CPU time.

I added -d now, I'll report again if I get more logs.

Comment 4 Neil Horman 2019-04-08 11:18:53 UTC
That would be helpful please.  In fact, if you see it happen again, if you could please run this command:
ptrace -p `pidof rngd`

that should give you a backtrace of where rngd is when its blocked.  You may need to install the rngd debuginfo package, but that will confirm whats going on.
Thanks

Comment 5 Steve Grubb 2019-04-17 21:51:49 UTC
Looks like rngd doesn't catch any signals. So, its not really designed for a graceful shutdown. Maybe just altering the service file like this would fix the issue:

diff --git a/rngd.service b/rngd.service
index 3d9dcb5..7014179 100644
--- a/rngd.service
+++ b/rngd.service
@@ -3,6 +3,7 @@ Description=Hardware RNG Entropy Gatherer Daemon
 
 [Service]
 ExecStart=/sbin/rngd -f
+KillSignal=SIGKILL
 
 [Install]
 WantedBy=multi-user.target

Comment 6 Ruben Kerkhof 2019-04-18 10:45:44 UTC
(In reply to Steve Grubb from comment #5)
> Looks like rngd doesn't catch any signals. So, its not really designed for a
> graceful shutdown. Maybe just altering the service file like this would fix
> the issue:
> 
> diff --git a/rngd.service b/rngd.service
> index 3d9dcb5..7014179 100644
> --- a/rngd.service
> +++ b/rngd.service
> @@ -3,6 +3,7 @@ Description=Hardware RNG Entropy Gatherer Daemon
>  
>  [Service]
>  ExecStart=/sbin/rngd -f
> +KillSignal=SIGKILL
>  
>  [Install]
>  WantedBy=multi-user.target

It should catch SIGTERM as you can see at https://github.com/nhorman/rng-tools/blob/master/rngd.c#L811

Comment 7 Zbigniew Jędrzejewski-Szmek 2019-04-25 10:10:05 UTC
I see this happen sporadically, both on real hardware and in some VMs:
$ journalctl -u rngd -b-7
-- Logs begin at Thu 2019-04-18 23:28:02 CEST, end at Thu 2019-04-25 12:07:35 CEST. --
Apr 21 16:21:05.829170 rngd[29558]: Added 3092/4096 bits entropy
Apr 21 16:21:05.829170 rngd[29558]: Reading entropy from JITTER Entropy generator
Apr 21 16:21:05.829170 rngd[29558]: xread_jitter requests 2500 bytes from pipe
Apr 21 16:21:05.833853 rngd[29558]: xread_jitter gets 2500 bytes
Apr 21 16:21:05.833853 rngd[29558]: Added 3186/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3271/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3349/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3419/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3482/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3539/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3592/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3639/4096 bits entropy
Apr 21 16:21:05.833853 rngd[29558]: Added 3682/4096 bits entropy
...
Apr 21 16:21:05.833853 rngd[29558]: Pool full at 4096, sleeping!
Apr 21 16:46:14.054552 rngd[29558]: Added 3125/4096 bits entropy
...
Apr 21 16:46:14.064115 rngd[29558]: Reading entropy from Intel RDRAND Instruction RNG
Apr 21 16:46:14.064115 rngd[29558]: Added 3733/4096 bits entropy
...
Apr 21 17:11:23.218949 rngd[29558]: Added 3947/4096 bits entropy
Apr 21 17:11:23.218949 rngd[29558]: Reading entropy from JITTER Entropy generator
Apr 21 17:11:23.218949 rngd[29558]: xread_jitter requests 2500 bytes from pipe
...
Apr 23 00:14:28.446809 rngd[29558]: Pool full at 4096, sleeping!
Apr 23 16:06:33.656160 rngd[29558]: Checking on done for thread 0
Apr 23 16:06:33.656160 rngd[29558]: DONE Writing to pipe with return 4096
Apr 23 16:06:33.656160 rngd[29558]: DONE Writing to pipe with return -1
Apr 23 16:06:33.656160 rngd[29558]: DONE Writing to pipe with return 4096
Apr 23 16:06:33.656160 rngd[29558]: DONE Writing to pipe with return 8192
Apr 23 16:06:33.656160 rngd[29558]: Error on pipe write: Resource temporarily unavailable        <----------------
Apr 23 16:06:33.656160 rngd[29558]: Checking on done for thread 1
Apr 23 16:06:33.633826 systemd[1]: Stopping Hardware RNG Entropy Gatherer Daemon...
Apr 23 16:08:03.788223 systemd[1]: rngd.service: State 'stop-sigterm' timed out. Killing.
Apr 23 16:08:03.788529 systemd[1]: rngd.service: Killing process 29558 (rngd) with signal SIGKILL.
Apr 23 16:08:03.797241 systemd[1]: rngd.service: Main process exited, code=killed, status=9/KILL
Apr 23 16:08:03.797489 systemd[1]: rngd.service: Failed with result 'timeout'.
Apr 23 16:08:03.798149 systemd[1]: Stopped Hardware RNG Entropy Gatherer Daemon.
Apr 23 16:08:03.798405 systemd[1]: rngd.service: Consumed 35min 54.922s CPU time.

The pipe error looks relevant. I haven't had the chance to gather more information though.

Comment 8 Neil Horman 2019-04-25 11:04:00 UTC
I may see the problem:
diff --git a/rngd_jitter.c b/rngd_jitter.c
index f68e2ca..a471253 100644
--- a/rngd_jitter.c
+++ b/rngd_jitter.c
@@ -284,7 +284,7 @@ static void *thread_entropy_task(void *data)
 
 		/* Write to pipe */
 		written = 0;
-		while(written != me->buf_sz) {
+		while(me->active && written != me->buf_sz) {
 			message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n");
 			ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written);
 			message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %d\n", ret);

Heres a build with the above patch, if you could try it out please

https://koji.fedoraproject.org/koji/taskinfo?taskID=34421984

Comment 9 Zbigniew Jędrzejewski-Szmek 2019-04-25 18:33:39 UTC
I installed the package. I'll report in a few days if I still see the problem.

Comment 10 Neil Horman 2019-04-25 19:27:05 UTC
copy that, thank you!

Comment 11 Zbigniew Jędrzejewski-Szmek 2019-04-25 20:30:10 UTC
This version doesn't seem to be a huge improvement ;) It's spinning on the CPU.

strace:
22:28:24.573853 sched_yield()           = 0
22:28:24.573918 sched_yield()           = 0
22:28:24.573987 sched_yield()           = 0
22:28:24.574053 sched_yield()           = 0
22:28:24.574125 sched_yield()           = 0
22:28:24.574194 sched_yield()           = 0
22:28:24.574261 sched_yield()           = 0
22:28:24.575644 sched_yield()           = 0
22:28:24.575740 sched_yield()           = 0
22:28:24.575863 sched_yield()           = 0
22:28:24.575936 sched_yield()           = 0
22:28:24.576014 sched_yield()           = 0
22:28:24.576181 sched_yield()           = 0
22:28:24.576325 sched_yield()           = 0
22:28:24.576470 sched_yield()           = 0
22:28:24.576573 sched_yield()           = 0
22:28:24.576740 sched_yield()           = 0
22:28:24.576895 sched_yield()           = 0
22:28:24.577048 sched_yield()           = 0
22:28:24.577208 sched_yield()           = 0
22:28:24.578828 sched_yield()           = 0
22:28:24.579778 sched_yield()           = 0
22:28:24.581056 sched_yield()           = 0
22:28:24.581200 sched_yield()           = 0
22:28:24.581286 sched_yield()           = 0
22:28:24.581361 sched_yield()           = 0
22:28:24.581454 sched_yield()           = 0
22:28:24.581554 sched_yield()           = 0
22:28:24.581952 sched_yield()           = 0
22:28:24.582124 sched_yield()           = 0
22:28:24.582239 sched_yield()           = 0
22:28:24.582358 sched_yield()           = 0
22:28:24.582446 sched_yield()           = 0
22:28:24.582518 sched_yield()           = 0
22:28:24.582632 sched_yield()           = 0
22:28:24.583964 sched_yield()           = 0

pstack:
#0  0x00007ffb0b312efb in sched_yield () from /lib64/libc.so.6
#1  0x000055e8913818c5 in init_jitter_entropy_source (ent_src=0x55e891388800 <entropy_sources+480>) at rngd_jitter.c:429
#2  0x000055e89137b8cc in main (argc=<optimized out>, argv=<optimized out>) at rngd.c:752

Comment 12 Neil Horman 2019-04-26 12:29:06 UTC
Oh, shoot, I didn't take care of the initialization case. Apologies.  This build should take care of that:
https://koji.fedoraproject.org/koji/taskinfo?taskID=34469597

Needed to add a check for !first in the entropy task functions while loop, so that it could actually start up properly

Comment 13 Zbigniew Jędrzejewski-Szmek 2019-04-26 14:48:49 UTC
No change, -test2 still sping in sched_yield().

Comment 14 Neil Horman 2019-04-27 10:29:04 UTC
hmm, very odd.  I've done some more looking and found something unexpected.  I've managed to get this to occur on my system as well (or a similar problem), and the issue doesn't appear to be the interlock on thread activation.  Rather the problem seems to be that the call to jent_read_entropy is never returning (or exiting somewhere within the library), suggesting that the issue is in the jitterentropy library.  Would you please run the following command on your system:
ltrace -f rngd -f

and confirm that you see output simmilar to this:
[pid 20049] rngd->jent_read_entropy(0x1aec3e0, 0x7fd430000b20, 0x4097, 24JITTER thread on cpu 1 wakes up for refill

 <unfinished ...>
[pid 20050] rngd->jent_read_entropy(0x1aecda0, 0x7fd428000b20, 0x4097, 24JITTER thread on cpu 2 wakes up for refill

 <unfinished ...>
[pid 20051] rngd->jent_read_entropy(0x1aed760, 0x7fd424000b20, 0x4097, 24Waiting for jitter tasks to start

JITTER thread on cpu 3 wakes up for refill

 <unfinished ...>
[pid 20052] rngd->jent_read_entropy(0x1aee120, 0x7fd41c000b20, 0x4097, 24 <unfinished ...>
[pid 20050] <... jent_read_entropy resumed> )                                                                                     = 0x4097
[pid 20049] <... jent_read_entropy resumed> )                                                                                     = 0x4097
[pid 20050] +++ exited (status 0) +++
[pid 20049] +++ exited (status 0) +++
[pid 20052] <... jent_read_entropy resumed> )                                                                                     = 0x4097
[pid 20052] +++ exited (status 0) +++
[pid 20051] <... jent_read_entropy resumed> )                                                                                     = 0x4097
[pid 20051] +++ exited (status 0) +++



I'm not sure why this would be happening now, as the library hasn't been updated that I can tell, but we may need to get the maintainer of that package involved here

Comment 15 Neil Horman 2019-04-27 10:33:08 UTC
scratch that, its too early here, I'm being stupid

Comment 16 Neil Horman 2019-04-29 14:10:18 UTC
https://koji.fedoraproject.org/koji/taskinfo?taskID=34527303

Ok, I think I have this sorted.  Looks like the race was in the shutdown function.  We would flag the threads for the jitter entropy source to exit, and the threads would exit before we could get feedback on their completion, leading to us blocking in the read call.  By using pthread_kill, I'm able to skip the read operation entirely on exit, which seems to be working.  I managed to recreate the problem on a VM, and with the patch in the above build, I was able to start and stop the daemon repeatedly for about 2 hours with no subsequent failures.  If you could please confirm the above build fixes this for you as well, I can check the fix in upstream and to fedrora.

Comment 17 Andrew J. Hutton 2019-05-03 14:05:17 UTC
I just ran into this in the F30 build as well.

Comment 18 Tom Horsley 2019-05-04 16:14:18 UTC
Me too on fedora 30: I was rebooting and got the cylon eyeball and a message about a stop job running for Entropy Gatherer Daemon. Had to press the reset button (after getting tired of waiting to see if anything would timeout).

Comment 19 Neil Horman 2019-05-06 12:54:22 UTC
*** Bug 1706432 has been marked as a duplicate of this bug. ***

Comment 20 Neil Horman 2019-05-07 17:51:11 UTC
thats great, would anyone like to confirm that the build I provided fixes the issue for them?

Comment 21 Vitaly 2019-05-07 18:38:50 UTC
> thats great, would anyone like to confirm that the build I provided fixes the issue for them?

I use rng-tools-6.7-1.fc30 on F30 and it still hangs 50/50 on reboot after suspend-resume.

Comment 22 Zbigniew Jędrzejewski-Szmek 2019-05-07 18:48:37 UTC
I'm testing rng-tools-6.7-1.fc30.x86_64 and so far it seems to behave OK.

Comment 23 Artem 2019-05-07 19:13:06 UTC
I still have this issue even on my VM after 15 min uptime.
rng-tools-6.7-1.fc30.x86_64

Comment 24 Philippe Troin 2019-05-08 20:22:21 UTC
(In reply to Artem from comment #23)
> I still have this issue even on my VM after 15 min uptime.
> rng-tools-6.7-1.fc30.x86_64

Same here, with that same package: it's reproducible 100% of the time.

Comment 25 Yura 2019-05-20 04:37:10 UTC
Just to confirm.
for me Fedora 30
the same version the same problem

Comment 26 neil 2019-05-21 01:59:15 UTC
Getting this issue on both of my machines after upgrading to f30

Comment 27 Neil Horman 2019-05-22 14:13:30 UTC
how many people are going to respond with "I'm seeing this too" before someone takes the time to confirm that the build in comment 16 fixes the issue for them?

Comment 28 Vitaly 2019-05-22 14:22:36 UTC
> before someone takes the time to confirm that the build in comment 16 fixes the issue for them?

We already use rng-tools-6.7-1 from F30 repos. It still hangs.

Comment 29 neil 2019-05-22 22:56:47 UTC
Hi Neil Horman, are you saying that the F31 build for 6.7.1 is patched? 

Where can i grab the rpm? I couldn't see a link to it. Sorry, new to Fedora.

Comment 30 Neil Horman 2019-05-23 17:10:19 UTC
I'm saying that I built a test build in comment 16 and asked the reporter (or anyone experiencing the problem) to test it and confirm that it solved the problem for them, but so far no one has.

Comment 31 Zbigniew Jędrzejewski-Szmek 2019-05-23 18:55:37 UTC
Neil, please note that the rpm you provided is built for rawhide, so is not installable for
most (all?) reporters here. Unfortunately it has the same version as the existing rpm in F30,
which people actually *can* install, which makes things confusing.

When I was testing your build in koji, I rebuilt it locally in mock from the srpm to be able to install on F30.
I didn't observe the bug, but the bug was always probabilistic, hence this lack of occurrence is not conclusive,
so I only reported it as "so far seems ok" in comment #c22.

My suggestion would be to submit an update for F30, with a bumped version, and ask people to test
this and provide karma.

Comment 32 Neil Horman 2019-05-24 09:55:54 UTC
zbigniew, please note that the bug is opened against rawhide, so I would expect users to have a rawhide install available to test with, or open a bug against a new release.  Given that some of the reporters here had 100% failure rates, I'll take your testing along with mine to be sufficient to show that its fixed and check it in.

Comment 33 Lei YU 2019-07-04 08:30:10 UTC
In OpenBMC we met an issue that rngd consumes 100% CPU, and it's found that it is caused by the patch mentioned here:

```
diff --git a/rngd_jitter.c b/rngd_jitter.c
index f68e2ca..a471253 100644
--- a/rngd_jitter.c
+++ b/rngd_jitter.c
@@ -284,7 +284,7 @@ static void *thread_entropy_task(void *data)
 
 		/* Write to pipe */
 		written = 0;
-		while(written != me->buf_sz) {
+		while(me->active && written != me->buf_sz) {
 			message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n");
 			ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written);
 			message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %d\n", ret);
```

It is wrong and cause the task's `active` state never gets a chance to be set to 1, and cause init_jitter_entropy_source() spinning to wait for it to become 1.

See details in https://github.com/openbmc/openbmc/issues/3574

Comment 34 Ben Cotton 2019-08-13 17:02:53 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 35 Ben Cotton 2019-08-13 19:06:40 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 36 Hans de Goede 2019-09-06 19:34:43 UTC
I was hitting this bug with a fresh (un-updated) F30 install today. While debugging a plymouth issue I have been rebooting all day and I hit this regularly.

So getting annoyed by the extra reboot time, I did some digging and I found this bug.

Neil, I assume that the fix from the no longer available scratch-build, which got little feedback, is the same as the one from rng-tools-6.7-2?

After upgrading to that I've done like 20 more reboots or so and I've not seen this hit once. So I believe it is safe to call this fixed now (with your fix) and I'm closing this bug.


Note You need to log in before you can comment on or make changes to this bug.