[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #28897 [Core Tor/sbws]: Stop running twice destination usability tests
#28897: Stop running twice destination usability tests
---------------------------+-----------------------------------
Reporter: juga | Owner: juga
Type: defect | Status: needs_review
Priority: Medium | Milestone: sbws: 1.0.x-final
Component: Core Tor/sbws | Version: sbws: 1.0.2
Severity: Normal | Resolution:
Keywords: | Actual Points:
Parent ID: #28663 | Points:
Reviewer: | Sponsor:
---------------------------+-----------------------------------
Changes (by juga):
* status: assigned => needs_review
Comment:
I think this is what is making sbws stalls.
A backtrace [0] in the moment it's stalled shows two threads trying to get
the next destination.
It locks
https://github.com/torproject/sbws/blob/ee64d76df54ceb3a3c9e1e2a797fd70d68bb0035/sbws/lib/destination.py#L248,
then while True, then if it enters in _perform_usability_test, will lock
again, then call _is_usable, which call connect_destination_over_circuit
which locks again. If it fails then it sleep.
Many times connect_to_destination_over_circuit fails several times in a
row, cause it's not reliable to do it through Tor and random relays.
If _usable_dests is not overwritten every time that a destination is
chosen, then a lock is only needed in connect_destination_over_circuit.
It would be better to refactor all this code to trace it and debug it
easier.
As a temporal solution, the "usability" can be tracked out of the class
and without locks.
For now i'd just disable checking for usability, and prioritize the
refactoring ticket as soon as 1.0 is done.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28897#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs