[tor-bugs] #27996 [Core Tor/sbws]: Apparent race condition when recalculating relay priority

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Oct 10 23:27:49 UTC 2018


#27996: Apparent race condition when recalculating relay priority
-------------------------------+--------------------
     Reporter:  pastly         |      Owner:  (none)
         Type:  defect         |     Status:  new
     Priority:  Medium         |  Milestone:
    Component:  Core Tor/sbws  |    Version:
     Severity:  Normal         |   Keywords:
Actual Points:                 |  Parent ID:
       Points:                 |   Reviewer:
      Sponsor:                 |
-------------------------------+--------------------
 This causes `sbws scanner` to crash completely.

 This might be the time to look into a better priority queue. Or maybe re-
 evaluate my reasoning for making a copy of all relays instead of giving
 them a priority attribute.

 Traceback:

 {{{
 Traceback (most recent call last):
   File "/home/matt/src/simple-bw-scanner/venv-editable/bin/sbws", line 11,
 in <module>
     load_entry_point('sbws', 'console_scripts', 'sbws')()
   File "/home/matt/src/simple-bw-scanner/sbws/sbws.py", line 75, in main
     exit(comm['f'](*comm['a'], **comm['kw']))
   File "/home/matt/src/simple-bw-scanner/sbws/core/scanner.py", line 387,
 in main
     run_speedtest(args, conf)
   File "/home/matt/src/simple-bw-scanner/sbws/core/scanner.py", line 347,
 in run_speedtest
     for target in rp.best_priority():
   File "/home/matt/src/simple-bw-scanner/sbws/lib/relayprioritizer.py",
 line 49, in best_priority
     relays = set(copy.deepcopy(self.relay_list.relays))
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 155, in deepcopy
     y = copier(x, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 218, in _deepcopy_list
     y.append(deepcopy(a, memo))
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 182, in deepcopy
     y = _reconstruct(x, rv, 1, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 297, in _reconstruct
     state = deepcopy(state, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 155, in deepcopy
     y = copier(x, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 243, in _deepcopy_dict
     y[deepcopy(key, memo)] = deepcopy(value, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 182, in deepcopy
     y = _reconstruct(x, rv, 1, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 297, in _reconstruct
     state = deepcopy(state, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 155, in deepcopy
     y = copier(x, memo)
   File "/home/matt/src/simple-bw-scanner/venv-
 editable/lib/python3.5/copy.py", line 242, in _deepcopy_dict
     for key, value in x.items():
 RuntimeError: dictionary changed size during iteration
 }}}

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


More information about the tor-bugs mailing list