[tor-bugs] #32533 [Core Tor/Stem]: Incompatibility with Python 3.8

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Nov 18 16:29:37 UTC 2019


#32533: Incompatibility with Python 3.8
-----------------------+-------------------------------
 Reporter:  nafen      |          Owner:  atagar
     Type:  defect     |         Status:  new
 Priority:  Medium     |      Component:  Core Tor/Stem
  Version:             |       Severity:  Major
 Keywords:  python3.8  |  Actual Points:
Parent ID:             |         Points:
 Reviewer:             |        Sponsor:
-----------------------+-------------------------------
 Python 3.8 changed the semantic restrictions on dictionary modifications
 during iterations:

 https://github.com/python/cpython/pull/12596

 thus causing any users of 'stem' to fail with the following exception
 (example taken from 'nyx'):

 {{{
 Traceback (most recent call last):
   File "/usr/bin/nyx", line 11, in <module>
     load_entry_point('nyx==2.1.0', 'console_scripts', 'nyx')()
   File "/usr/lib/python3.8/site-packages/nyx/__init__.py", line 176, in
 main
     nyx.starter.main()
   File "/usr/lib/python3.8/site-packages/stem/util/conf.py", line 289, in
 wrapped
     return func(*args, config = config, **kwargs)
   File "/usr/lib/python3.8/site-packages/nyx/starter.py", line 90, in main
     controller = init_controller(
   File "/usr/lib/python3.8/site-packages/nyx/__init__.py", line 325, in
 init_controller
     TOR_CONTROLLER = stem.connection.connect(*args, **kwargs)
   File "/usr/lib/python3.8/site-packages/stem/connection.py", line 291, in
 connect
     return _connect_auth(control_connection, password, password_prompt,
 chroot_path, controller)
   File "/usr/lib/python3.8/site-packages/stem/connection.py", line 375, in
 _connect_auth
     return controller(control_socket, is_authenticated = True)
   File "/usr/lib/python3.8/site-packages/stem/control.py", line 1057, in
 __init__
     super(Controller, self).__init__(control_socket, is_authenticated)
   File "/usr/lib/python3.8/site-packages/stem/control.py", line 585, in
 __init__
     self._post_authentication()
   File "/usr/lib/python3.8/site-packages/stem/control.py", line 3902, in
 _post_authentication
     owning_pid = self.get_conf('__OwningControllerProcess', None)
   File "/usr/lib/python3.8/site-packages/stem/control.py", line 2170, in
 get_conf
     entries = self.get_conf_map(param, default, multiple)
   File "/usr/lib/python3.8/site-packages/stem/control.py", line 2273, in
 get_conf_map
     for key in reply:
 RuntimeError: dictionary keys changed during iteration
 }}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/32533>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list