[issue32485] Multiprocessing dict sharing between forked processes

Christian Heimes report at bugs.python.org
Wed Jan 3 04:55:58 EST 2018


Christian Heimes <lists at cheimes.de> added the comment:

Does it it actually crash (segfault) or are you merely getting an exception? I'm just getting bunch of exception:

Traceback (most recent call last):
  File "multiprocessing_crash.py", line 155, in <module>
    test_manyForkedProcessesSingleThreaded(inst1, inst2, nRuns, nProcesses)
  File "multiprocessing_crash.py", line 76, in test_manyForkedProcessesSingleThreaded
    run(inst1, nRuns)
  File "multiprocessing_crash.py", line 28, in run
    inst.run()
  File "multiprocessing_crash.py", line 23, in run
    self.d[self.key] = 0
  File "<string>", line 2, in __setitem__
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/managers.py", line 759, in _callmethod
  File "multiprocessing_crash.py", line 155, in <module>
    test_manyForkedProcessesSingleThreaded(inst1, inst2, nRuns, nProcesses)
  File "multiprocessing_crash.py", line 82, in test_manyForkedProcessesSingleThreaded
    run(inst2, nRuns)
  File "multiprocessing_crash.py", line 28, in run
    inst.run()
  File "multiprocessing_crash.py", line 19, in run
    item = self.d.get(self.key)
  File "<string>", line 2, in get
  File "/usr/lib64/python2.7/multiprocessing/managers.py", line 759, in _callmethod
    kind, result = conn.recv()
    kind, result = conn.recv()
cPickle.UnpicklingErrorMemoryError
: invalid load key, '#'.
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/util.py", line 268, in _run_finalizers
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/util.py", line 268, in _run_finalizers
    finalizer()
    finalizer()
  File "/usr/lib64/python2.7/multiprocessing/util.py", line 201, in __call__
  File "/usr/lib64/python2.7/multiprocessing/util.py", line 201, in __call__
    res = self._callback(*self._args, **self._kwargs)
    res = self._callback(*self._args, **self._kwargs)
  File "/usr/lib64/python2.7/multiprocessing/managers.py", line 609, in _finalize_manager
  File "/usr/lib64/python2.7/multiprocessing/managers.py", line 609, in _finalize_manager
    if process.is_alive():
    if process.is_alive():
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 155, in is_alive
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 155, in is_alive
    assert self._parent_pid == os.getpid(), 'can only test a child process'
AssertionError: can only test a child process

----------
nosy: +christian.heimes

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32485>
_______________________________________


More information about the Python-bugs-list mailing list