Thanks to you both for your debugging help, this has now been confirmed. While the sys_waitid() call makes sure that the siginfo_t struct is zero'd before returning to userspace if there's no child and WNOHANG is given; the compat_sys_waitid() function does NOT zero the 64-bit struct
This means that the pid is the same as the last one handled, so it sits in an infinite loop. Zero'ing the struct before calling waitid() solves the problem. ** Bug 60075 has been marked a duplicate of this bug ** Summary changed: - Doesn't not spawn ttys + infinite loop handling children (amd64, ppc64, sparc) ** Description changed: After today's upgrade, ttys are no longer spawned on reboot. I tried specifying "single" on the yaboot command line, and I do not get ttys. - Wish me luck using break in initramfs. =/ + When booting with --debug, the machine hangs after rcS stops and does + not spawn any further processes. + + Further investigation reveals init spinning at 100% cpu inside the + waitid() call loop. ** Changed in: upstart (Ubuntu) Importance: Untriaged => Critical Assignee: (unassigned) => Scott James Remnant Status: Unconfirmed => Confirmed ** Changed in: upstart (Ubuntu) Status: Confirmed => Fix Committed -- infinite loop handling children (amd64, ppc64, sparc) https://launchpad.net/bugs/59459 -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs