Deadlock in init
Seth Bollinger
seth.boll at gmail.com
Thu Nov 20 23:37:16 UTC 2014
Hello All,
We recently ran into a deadlock in init. The window is small, but I
figured I would post to the list anyway.
There are syslog messages in the signal handler for reboot and shutdown.
Internally this function grabs a lock. If the main loop is trying to grab
this lock at exactly the same time (also posting a syslog message), then a
deadlock is possible.
Here's a small example program that should demonstrate the issue.
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <signal.h>
void handler(int sig)
{
syslog(LOG_INFO, "handler");
}
void main(int argc, char **argv)
{
signal(SIGUSR1, handler);
while (1)
{
syslog(LOG_INFO, "main");
}
}
while [ true ]; do kill -USR1 PID; done
Thanks,
Seth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20141120/f408e44f/attachment.html>
More information about the busybox
mailing list