Reading subprocess stdout susceptible to deadlock

Vitaly Davidovich vitalyd at
Wed Mar 30 13:56:06 UTC 2016


It seems that doing a blocking read on a subprocess's stdout can lead to
deadlock between the thread doing the read and the process reaper thread.
The deadlock occurs because the reader is synchronized on the
ProcessPipeInputStream, blocks for more data to consume, and process reaper
comes along trying to call processExited, which also synchronizes on the
same PPIS.  The reader appears stuck because it's not seeing the EOF due to
process reaper not being able to close the stream.

I couldn't find any existing reports of this via quick search, which makes
me wonder if I'm missing something.  Is this a known issue?


Sent from my phone

More information about the core-libs-dev mailing list