[PATCH] python: fix Popen.wait() deadlock issue

Andrew Bartlett abartlet at samba.org
Sat Oct 14 06:30:59 UTC 2017


On Tue, 2017-10-03 at 10:06 +1300, joeg--- via samba-technical wrote:
> Hi everyone,
> I am Joe Guo, a new Samba developer from Catalyst IT, New Zealand.
> 
> In `python/samba/tests/__init__.py` file,  both `check_exit_code` and
> `check_output` used `Popen.wait()` for command line output.
> This will cause deadlock if the output is too large (for example, more
> than 64k).
> 
> The issue is documented in Python official document at:
> https://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait
> 
> I created 2 patches for this issue.
> 0001 is the proof.  I added a python script to generate large output and
> a known failed test case.
> 0002 is the fix. I use `communicate` instead of `wait` to avoid the
> deadlock issue.
> 

Thanks so much for this Joe!

Reviewed-by: Andrew Bartlett <abartlet at samba.org>

Can I please get another team reviewer please?  This bit us recently
with a never-ending autobuild on sn-devel so it would be good to get
fixed.

Thanks,

Andrew Bartlett
-- 
Andrew Bartlett                       http://samba.org/~abartlet/
Authentication Developer, Samba Team  http://samba.org
Samba Developer, Catalyst IT          http://catalyst.net.nz/services/samba




More information about the samba-technical mailing list