I have a machine that irregularly experiences Dev32 crashes and I am
pretty sure I know which of my processes is causing the crashes. The
process handles radio data coming in on 1-5 serial ports plus POSIX
mqueue messages, and it sends data out on one of the serial ports and
via UDP broadcasts. The serial port transmissions are controlled by a
timer that goes off about 12 times a second. The timer generates a
signal and the signal handler pushes data out the port using write().
Reading from the serial ports and the mqueue is controlled by the
The program can cruise along for months under all sorts of serial port
load conditions, and then start generating Dev32 crashes once or twice
per day. I believe that the crashes occur more often when the program
is receiving on more serial ports, but I think that it can occur even
when just one port is being used. I think that the crashes have
something to do with an interaction between my timer signal handler and
the select() call breaks, but I don’t think I am doing anything unusual
in the signal handler function.
Can anyone suggest what kinds of things might kill Dev32? What should
I be watching for?