In #21394 (moved), we discovered that Tor clients sometimes retry the same exit, even when it is timing out.
Can we retry fewer times, but still have an acceptable risk of clients encountering a bad exit?
experience a lot of exit timeouts when trying to connect to a website via DNS.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
In #21394 (moved), we discovered that Tor clients sometimes retry the same exit, even when it is timing out.
Can we retry fewer times, but still have an acceptable risk of clients encountering a bad exit?
Is that true? I hadn't concluded that from the data, but I'm not familiar with the code. Does it return to the same exit more than would be expected by a random exit selection?
Oh, I see. Those were attempts to random exits that timed out before completing.
Maybe we could fix that at the client level by keeping an exit failure cache?
But the client would still need to experience some timeouts before it could skip failed exits.
Trac: Summary: Make clients avoid retrying the same exit when it times out to Make clients avoid retrying slow exits when they time out Description: In #21394 (moved), we discovered that Tor clients sometimes retry the same exit, even when it is timing out.
Can we retry fewer times, but still have an acceptable risk of clients encountering a bad exit?
to
In #21394 (moved), we discovered that Tor clients sometimes retry the same exit, even when it is timing out.
Can we retry fewer times, but still have an acceptable risk of clients encountering a bad exit?
experience a lot of exit timeouts when trying to connect to a website via DNS.
Oh, I see. Those were attempts to random exits that timed out before completing.
Maybe we could fix that at the client level by keeping an exit failure cache?
But the client would still need to experience some timeouts before it could skip failed exits.
Given that there are hundreds of exits and, at least in my naive measurement, ~20% timeout, it sounds not super useful. So I think for solving #21394 (moved) I would be more inclined to rely on self-reporting by relays (#24014 (moved)) or external testing by bandwidth authorities (#24010 (moved)).
Trac: Cc: gk, brade, mcs to gk, brade, mcs, arthuredelstein
Maybe we could fix that at the client level by keeping an exit failure cache?
Be very careful of a destination dns server that chooses which requests to time out on, with the goal of shifting users away from certain exits towards others.
Some amount of that attack is inevitably possible, since if you can't reach the site from one exit then you'll end up reaching it from another.
But any design where the destination dns server can set cross-circuit state on the client makes me itch.