[issue17367] subprocess deadlock when read() is interrupted

2013-03-06 Thread Richard Oudkerk

Richard Oudkerk added the comment:

I will close the issue then.

If you track the problem down to a bug in Python then you can open a new one.

--
resolution:  -> invalid
stage:  -> committed/rejected
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue17367] subprocess deadlock when read() is interrupted

2013-03-06 Thread John Szakmeister

John Szakmeister added the comment:

Good grief... how did I miss that.  The problem has been flaky for me to 
induce.  I'll take a closer look at the correct section.  Thank you Richard.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue17367] subprocess deadlock when read() is interrupted

2013-03-06 Thread Richard Oudkerk

Richard Oudkerk added the comment:

BTW, on threads are only used on Windows.  On Unix select() or poll() is used.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue17367] subprocess deadlock when read() is interrupted

2013-03-06 Thread Richard Oudkerk

Richard Oudkerk added the comment:

The change in your patch is in a Windows-only section -- a few lines before the 
chunk you can see _winapi.GetExitCodeProcess().

Since read() on Windows never fails with EINTR there is no need for 
_eintr_retry_call().

If you are using Linux then there must be some other reason for your deadlock.

--
nosy: +sbt

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue17367] subprocess deadlock when read() is interrupted

2013-03-06 Thread John Szakmeister

New submission from John Szakmeister:

I discovered this issue while trying to track down why our upcoming release for 
Nose 1.3.0 was deadlocking under Ubuntu 12.04 with Python 3.3.  It turns out 
that the read() was being interrupted leaving data in the subprocess's output 
buffers, which ultimately means the subprocess is blocked.  Since the thread 
was exiting, and the read was never retried, we were left in deadlock.

The attached patch fixes the issue.  It wraps the read call with 
_eintr_retry_call() around the read operation in _readerthread().

--
components: Library (Lib)
files: fix-subprocess-deadlock.patch
keywords: patch
messages: 183584
nosy: jszakmeister
priority: normal
severity: normal
status: open
title: subprocess deadlock when read() is interrupted
type: behavior
versions: Python 3.3
Added file: http://bugs.python.org/file29323/fix-subprocess-deadlock.patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com