On 02/21/2018 05:55 PM, Ram Pai wrote:
From: Thiago Jung Bauermann <redacted>
The sig_chld() handler calls dprintf2() taking care of setting
dprint_in_signal so that sigsafe_printf() won't call printf().
Unfortunately, this precaution is is negated by dprintf_level(), which
has a call to fflush().
This function acquires a lock, which means that if the signal interrupts an
ongoing fflush() the process will deadlock. At least on powerpc this is
easy to trigger, resulting in the following backtrace when attaching to the
frozen process:
Ugh, yeah, I've run into this too.
Acked-by: Dave Hansen <redacted>