Sorry, I lost track of the original bug. :) So your original report shows what I'd expect given your narrative:
Somehow, rsyslog is spinning off its input threads while its parent process is alive. The parent process sticks around until it itself dies (a maximum of 5 mins due to the sleep(300) && exit(1) logic). Or, sometimes it can be induced to quit after one of its threads gets CPU time (e.g. when kmsg is blocking on a read and gets some input). So, based on your pstree, I'd say we are definitely hitting the read() loop. But I'm still confused about why the parent process remains alive. By the time rsyslog spins off input threads, it has sent a kill() to its parent (thus allowing the init script to continue). The bug seems to be that in one situation the parent ignores the signal, in the other, the parent waits to process the signal until a thread of a child is unblocked. Ideally in both, the parent would immediately process the signal and anybody blocking on a read() would just get EINTR. I'd love to be able to consistently reproduce this. I'm hesitant to work around this by changing the imklog plugin to be nonblocking, as this seems to be a more generic bug that could be triggered by any plugin. -- hanging during start https://bugs.launchpad.net/bugs/423943 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
