make iterating over sys.modules threadsafe by mmohrhard · Pull Request #322 · cloudpipe/cloudpickle
Despite creating a copy through list(sys.modules.items()) there
is a possible race condition if another thread is adding to sys.modules
File "x/lib/python3.7/pickle.py", line 774, in save_tuple
save(element)
File "x/lib/python3.7/pickle.py", line 549, in save
self.save_reduce(obj=obj, *rv)
File "x/lib/python3.7/pickle.py", line 637, in save_reduce
save(func)
File "x/lib/python3.7/pickle.py", line 518, in save
self.save_global(obj)
File "x/lib/python3.7/site-packages/cloudpickle/cloudpickle.py", line 876, in save_global
elif not _is_global(obj, name=name):
File "x/lib/python3.7/site-packages/cloudpickle/cloudpickle.py", line 174, in _is_global
module_name = _whichmodule(obj, name)
File "x/lib/python3.7/site-packages/cloudpickle/cloudpickle.py", line 156, in _whichmodule
for module_name, module in list(sys.modules.items()):
RuntimeError: dictionary changed size during iteration