Comment 7 for bug 319729

Revision history for this message
Scott James Remnant (Canonical) (canonical-scott) wrote :

As the program demonstrates, the biggest problem is missed SIGCHLDs.

I'm actually quite surprised by how fast the program demonstrates the problem, I was actually expecting you to need to run it for a minute or two before a hang happens. For me, it hangs within mere hundreds of iterations.

The worst result of this hang would be that udev did not get woken up because of an important SIGCHLD such as one of the tests it runs on the root filesystem. This is actually the most likely scenario since the root filesystem device is often one of the very last that udev processes, and there would be no further children dying after to wake it up harder.

The failure would then be that udev would timeout the handler for the root filesystem device, likely causing /dev/sda1 to not be created.

Given the speed at which this can be replicated with the test program, and the tendancy for the root filesystem to be the last device, I'd guess you're looking at such a failure in the order of every thousand boots.

(Or if you booted a thousand netbooks, one of them would likely fail to boot and drop to a "root filesystem not found" prompt)