Bug 958867

Summary: Fix subclassing of subprocess.Popen
Product: Red Hat Enterprise Linux 6 Reporter: Dave Malcolm <dmalcolm>
Component: pythonAssignee: Python Maintainers <python-maint>
Status: CLOSED DUPLICATE QA Contact: BaseOS QE - Apps <qe-baseos-apps>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.1CC: markmc
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-05-02 14:55:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Dave Malcolm 2013-05-02 14:51:09 UTC
Description of problem:
In RHEL 6.1's python we backported the optional "timeout" option to various methods of the subprocess.Popen from upstream Python 3 to our python 2.6

Specifically patch 131 in python.src.rpm added the optional "timeout" argument to the following API entrypoints:
  subprocess.call
  Popen.communicate
  Popen.wait
based on the feature that eventually landed in Python 3.3 (this was http://bugs.python.org/issue5673)

Unfortunately this breaks 3rd party code that monkeypatches subprocess.Popen, such as eventlet:

http://www.mail-archive.com/openstack@lists.launchpad.net/msg02545.html

Version-Release number of selected component (if applicable):
Added in python-2.6.6-7.el6 (RHEL 6.1)

How reproducible:
100%

Steps to Reproduce:

Run this python script:
------------------------------------------------------------
import subprocess
old_Popen = subprocess.Popen
class Subclass(old_Popen):
    def wait(self):
        return old_Popen.wait(self)
subprocess.Popen = Subclass
print subprocess.call(['echo', 'foo'])
------------------------------------------------------------

  
Actual results:
Traceback with:
TypeError: wait() got an unexpected keyword argument 'timeout'

Expected results:
Should successfully run the subprocess

Additional info:

Comment 1 Mark McLoughlin 2013-05-02 14:55:36 UTC

*** This bug has been marked as a duplicate of bug 958868 ***