[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-bugs] #29034 [Core Tor/Tor]: circuit: Cleanup an HS circuit when it is being re-purposed
#29034: circuit: Cleanup an HS circuit when it is being re-purposed
------------------------------+----------------------------------
Reporter: dgoulet | Owner: (none)
Type: defect | Status: new
Priority: High | Milestone: Tor: 0.4.0.x-final
Component: Core Tor/Tor | Version:
Severity: Normal | Keywords: tor-hs, 035-backport
Actual Points: | Parent ID:
Points: | Reviewer:
Sponsor: |
------------------------------+----------------------------------
Mike found out that when an IP/RP circuit fails to build in the right
amount of time (for instance through `circuit_expire_building()`), it is
re-purposed to become a measurement circuit.
The issue is that those HS circuits are set in the HS circuitmap and have
an `hs_ident` or `rend_data` set to them that should really not linger in
the circuit object if the circuit is not an HS one anymore.
Offenders: `circuit_build_times_mark_circ_as_measurement_only()` and
`pathbias_send_usable_probe()`.
Solution:
`circuit_change_purpose()` is probably the right place to make a callback
within the HS subsystem specific to cleaning up a circuit for a purpose
change. I think we need a new function that specifically does that and not
use `hs_circ_cleanup()` since it won't remove the ident.
Lingering circuits in the HS circuitmap is bad and this bug could probably
explain some of the issues we had with clients unable to establish
connections because the IP auth key wouldn't match the one in the circuit
ident.
I strongly believe this should be backported up to 0.3.5 at the very
least.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29034>
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