[New-bugs-announce] [issue9099] multiprocessing/win32:

Alexander Myodov report at bugs.python.org
Mon Jun 28 14:55:00 CEST 2010


New submission from Alexander Myodov <amyodov at gmail.com>:

I am using Python 2.6.5/win32, and working with multiprocessing module, doing that with Python interpreter embedded using Cython (if that may be related to the problem).

While creating a subprocess and a Pipe to communicate with it, I've got the following traceback (particulaly on the line "parent_conn, child_conn = Pipe()"):

Traceback (most recent call last):
  File "test_fork.py", line 24, in init test_fork (test_fork.c:810)
    vasia.main()
  File "Z:\multiprocessing_cython_w32\vasia.py", line 15, in main
    parent_conn, child_conn = Pipe()
  File "Z:\python-win32\2.6.5\Lib\multiprocessing\__init__.py", line 106, in Pipe
    return Pipe(duplex)
  File "Z:\python-win32\2.6.5\Lib\multiprocessing\connection.py", line 202, in Pipe
    h2, win32.PIPE_READMODE_MESSAGE, None, None
WindowsError: [Error 0] Success

Lines 202-204 in multiprocessing/connection.py contain the following: 

        win32.SetNamedPipeHandleState(                                                                                             
            h2, win32.PIPE_READMODE_MESSAGE, None, None                                                                            
            ) 

It seems to me that for some reason SetNamedPipeHandleState might be returning 0 even while it didn't fail actually; a quick check confirmed that it could be fixed by changing the above lines to the following:

        try:                                                                                                                       
            win32.SetNamedPipeHandleState(                                                                                         
                h2, win32.PIPE_READMODE_MESSAGE, None, None                                                                        
                )                                                                                                                  
        except WindowsError, e:                                                                                                    
(win32)                                                                                                       
            if e.args[0] != 0: # 0 is error code for SUCCESS                                                                       
                raise

----------
components: Extension Modules, Windows
messages: 108824
nosy: honeyman
priority: normal
severity: normal
status: open
title: multiprocessing/win32:
type: behavior
versions: Python 2.6

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue9099>
_______________________________________


More information about the New-bugs-announce mailing list