[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/51412: Syscall I/O race condition leads to deadlock and lost interrupts
>Synopsis: Syscall I/O race condition leads to deadlock and lost interrupts
>Arrival-Date: Fri Aug 12 05:40:00 +0000 2016
>Originator: Ryan Brackenbury
NetBSD 7.0.1 (GENERIC.201605221355Z) amd64
Making simultaneous reads of kernel parameters can cause deadlock of some kernel I/O. Programs trying to read/write to the same kernel parameters after this time are blocked, and hang on I/O indefinitely - these show 'D' in the run status field in top/ps aux.
Control-C's are lost after this point, and other interrupts become unpredictable or unresponsive. If 'zombie' processes waiting on kern I/O build up, this further causes a system crash.
In my situation, having two seperate users simultaneously run `envstat` caused the kern enter this state, and to drop Control-C's. The system became entirely unresponsive and required a hard reboot.
Run two copies of a program that access kernel parameters at the same time, and the will cause a deadlock. May require repeating a number of times until race occurs.
Worst Case: eg., while [ 1 ]; do sysctl hw & envstat; done
Sometimes running `sysctl -a` will unblock the kern I/O (after a few tries), and the system will return back to normal. This might point to some lock in the kernel being faulty, but I have not investigated further.
Main Index |
Thread Index |