[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