This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author terrence
Recipients carlosdf, jnoller, terrence
Date 2009-10-13.23:28:22
SpamBayes Score 2.095368e-09
Marked as misclassified No
Message-id <1255476504.75.0.11436759768.issue6766@psf.upfronthosting.co.za>
In-reply-to
Content
I get the same results on:
Python 2.6.2 (r262:71600, Sep 14 2009, 18:47:57)
[GCC 4.3.2] on linux2

I think this is the same issue I was seeing yesterday.  You can exercise
the issue and cause an exception with just 6 lines:

##### CODE #####
from multiprocessing import Manager
manager = Manager()
ns_proxy = manager.Namespace()
evt_proxy = manager.Event()
ns_proxy.my_event_proxy = evt_proxy
print ns_proxy.my_event_proxy

##### TRACEBACK #####
Traceback (most recent call last):
  File "test_nsproxy.py", line 39, in <module>
    print ns_proxy.my_event_proxy
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 989, in
__getattr__
    return callmethod('__getattribute__', (key,))
  File "/usr/lib64/python2.6/multiprocessing/managers.py", line 740, in
_callmethod
    raise convert_to_error(kind, result)
multiprocessing.managers.RemoteError:
---------------------------------------------------------------------
Unserializable message: ('#RETURN', <threading._Event object at 0x1494790>)
---------------------------------------------------------------------

Storing a proxy into a proxied object and then accessing the proxy 
returns a copy of the object itself and not the stored proxy.  Thus,
updates to the nested dict are local and do not update the real object,
and proxies to unpicklable objects raise an exception when accessed.
History
Date User Action Args
2009-10-13 23:28:25terrencesetrecipients: + terrence, jnoller, carlosdf
2009-10-13 23:28:24terrencesetmessageid: <1255476504.75.0.11436759768.issue6766@psf.upfronthosting.co.za>
2009-10-13 23:28:23terrencelinkissue6766 messages
2009-10-13 23:28:22terrencecreate