Opened 12 years ago

Last modified 7 years ago

#454 closed defect (Fixed)

streams never reaching SocksTimeout

Reported by: arma Owned by:
Priority: Low Milestone:
Component: Core Tor/Tor Version: 0.2.0.2-alpha
Severity: Keywords:
Cc: arma, nickm Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Reported by lodger:

<lodger> arma: i found the endless attempt to change circuit at
connection_edge.c; connection_ap_expire_beginning(); There is no limit to the
number of attempts to replace circuit, if the expectation it is more than 15
seconds of answer to cell RELAY_COMAND_BEGIN. If the application of user does
not have a time out of expectation, and the process of constructing the new
circuits is always successful, but the address inquired by user is not
accessible, then the process of changing
the circuits is infinite.

<lodger> hang up on the stream after only if no new circuit

see connection_ap_handshake_attach_circuit() in circuituse.c
hm. or maybe not that. hang on. :)
hm. that was where it used to be. it appears to be in

+connection_ap_expire_beginning() now, you're right.

i wonder why the timeout got moved from attach-circuit to expire-beginning.
probably because not everything was hitting attach-circuit. e.g. controller

connections don't.

but maybe we should put a check in both places?

lodger: have you actually experienced this, or you just think it might

happen?
<lodger> i have that situation in practice

[Automatically added by flyspray2trac: Operating System: All]

Child Tickets

Change History (4)

comment:1 Changed 12 years ago by arma

Option one: add the SocksTimeout check to the top of ..._attach_circuit too.
(Why did we take it out?)

Option two: add something like

if (conn->num_socks_retries < 5)
else {

connection_mark_unattached_ap(conn, END_STREAM_REASON_TIMEOUT);
continue;

}

to ...expire_beginning.

comment:2 Changed 12 years ago by arma

Fixed in r11186

comment:3 Changed 12 years ago by arma

flyspray2trac: bug closed.

comment:4 Changed 7 years ago by nickm

Component: Tor ClientTor
Note: See TracTickets for help on using tickets.