New submission from Jeff DuMonthier:

In multiprocessing, attempting to add a Queue proxy to a dict or Namespace 
proxy (all returned by the same SyncManager) raises an exception indicating a 
keyword argument 'manager_owned=True' has been passed to the function 
AutoProxy() but is not an argument of that function.

In lib/python3.6/multiprocessing/managers.py, in function RebuildProxy(), line 
873: "kwds['manager_owned'] = True" adds this argument to a keyword argument 
dictionary.  This function calls AutoProxy which has an argument list defined 
on lines 909-910 as:
def AutoProxy(token, serializer, manager=None, authkey=None,
              exposed=None, incref=True):
This raises an exception because there is no manager_owned argument defined.  I 
added "manager_owned=False" as a keyword argument to AutoProxy which seems to 
have fixed the problem.  There is no exception and I am able to pass Queue 
proxies through dict and Namespace proxies to other processes and use them.  I 
don't know the purpose of that argument though or if the AutoProxy function 
should actually use it for something.  My fix allows but ignores it.

----------
components: Library (Lib)
messages: 292889
nosy: jjdmon
priority: normal
severity: normal
status: open
title: Adding a SyncManager Queue proxy to a SyncManager dict or Namespace 
proxy raises an exception
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue30256>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to