`RuntimeError: dictionary changed size during iteration` randomly happens while importing hashlib
I've been testing PyPy3.7 7.3.2rc2 and I've hit the following issue:
byte-compiling /tmp/portage/dev-python/termcolor-1.1.0-r2/image/_pypy3/usr/lib/pypy3.7/site-packages/termcolor.py to termcolor.pypy37.pyc
Traceback (most recent call last):
File "setup.py", line 53, in <module>
'Topic :: Terminals'
File "/usr/lib/pypy3.7/lib-python/3/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib/pypy3.7/lib-python/3/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/lib/pypy3.7/lib-python/3/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/pypy3.7/lib-python/3/distutils/command/install.py", line 587, in run
self.run_command(cmd_name)
File "/usr/lib/pypy3.7/lib-python/3/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/lib/pypy3.7/lib-python/3/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/lib/pypy3.7/lib-python/3/distutils/command/install_lib.py", line 97, in run
self.byte_compile(outfiles)
File "/usr/lib/pypy3.7/lib-python/3/distutils/command/install_lib.py", line 138, in byte_compile
verbose=self.verbose, dry_run=self.dry_run)
File "/usr/lib/pypy3.7/lib-python/3/distutils/util.py", line 369, in byte_compile
from tempfile import mkstemp
File "/usr/lib/pypy3.7/lib-python/3/tempfile.py", line 45, in <module>
from random import Random as _Random
File "/usr/lib/pypy3.7/lib-python/3/random.py", line 46, in <module>
from hashlib import sha512 as _sha512
File "/usr/lib/pypy3.7/lib-python/3/hashlib.py", line 161, in <module>
import _hashlib
File "/usr/lib/pypy3.7/lib_pypy/_hashlib/__init__.py", line 4, in <module>
from _cffi_ssl._stdssl.utility import (_str_to_ffi_buffer, _bytes_with_len,
File "/usr/lib/pypy3.7/lib_pypy/_cffi_ssl/_stdssl/__init__.py", line 18, in <module>
from _cffi_ssl._stdssl.certificate import (_test_decode_cert,
File "/usr/lib/pypy3.7/lib_pypy/_cffi_ssl/_stdssl/certificate.py", line 7, in <module>
from _cffi_ssl._stdssl.error import ssl_error, pyssl_error
File "/usr/lib/pypy3.7/lib_pypy/_cffi_ssl/_stdssl/error.py", line 3, in <module>
import socket
File "/usr/lib/pypy3.7/lib-python/3/socket.py", line 86, in <module>
lambda C: C.isupper() and C.startswith('MSG_'))
File "/usr/lib/pypy3.7/lib-python/3/enum.py", line 660, in _convert
for name in source.keys()
File "/usr/lib/pypy3.7/lib-python/3/enum.py", line 659, in <listcomp>
(name, source[name])
RuntimeError: dictionary changed size during iteration
I don't know whether it's specific to PyPy3.7, more likely to happen there or just entirely random and I was lucky to hit it. A second install attempt worked fine.