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 Jorge Herskovic
Recipients Jorge Herskovic
Date 2015-06-21.15:08:26
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1434899306.98.0.122661278895.issue24484@psf.upfronthosting.co.za>
In-reply-to
Content
I'm writing a library on top of multiprocessing. As part of the test suite, I create and destroy dozens of processes repeatedly. About once in 50 runs, the tests complete successfully but the program crashes with:

Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/multiprocessing/util.py", line 286, in _exit_function
    _run_finalizers(0)
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/multiprocessing/util.py", line 246, in _run_finalizers
    items = [x for x in list(_finalizer_registry.items()) if f(x)]
RuntimeError: dictionary changed size during iteration

(this is on OS X 10.10.3, Python 3.4.3; I've been unable to replicate the behavior on Python 2.7.9, 3.5.0b2, or pypy despite hundreds of runs)

The problematic code is available at https://github.com/jherskovic/mpetl and the tests should be run with nosetests
History
Date User Action Args
2015-06-21 15:08:27Jorge Herskovicsetrecipients: + Jorge Herskovic
2015-06-21 15:08:26Jorge Herskovicsetmessageid: <1434899306.98.0.122661278895.issue24484@psf.upfronthosting.co.za>
2015-06-21 15:08:26Jorge Herskoviclinkissue24484 messages
2015-06-21 15:08:26Jorge Herskoviccreate