commit a1bf13ae243428224fa49afc85add3e1b4d31e29
Author: David Fifield <[email protected]>
Date:   Sun Feb 12 10:54:49 2012 -0800

    Use "LearnCircuitBuildTimeout 0" in exercise-flashproxy.
    
    flashproxy-exercise, despite getting a proxy in over 99% of cases, only
    bootstraps in about 75% of them. I suspect this is because of too-short
    timeouts. 75% is close to the designed-for 80% described here (2.4.1):
    
https://gitweb.torproject.org/torspec.git?a=blob_plain;hb=HEAD;f=path-spec.txt
    
    Here are sample logs with extra circuit_expire_building debugging added
    by me. A successful run (note "it's still young"):
    
    Feb 12 00:13:21.000 [info] circuit_build_times_set_timeout(): Based on 1000 
circuit times, it looks like we don't need to wait so long for circuits to 
finish. We will now assume a circuit is too slow to use after waiting 5 seconds.
    Feb 12 00:13:21.000 [info] circuit_build_times_set_timeout(): Circuit 
timeout data: 5051.643548ms, 60000.000000ms, Xm: 3092, a: 3.278575, r: 0.223000
    ...
    Feb 12 00:13:23.000 [notice] Bootstrapped 10%: Finishing handshake with 
directory server.
    Feb 12 00:13:23.000 [info] connection_edge_process_inbuf(): data from edge 
while in 'waiting for circuit' state. Leaving it on buffer.
    Feb 12 00:13:23.000 [info] connection_edge_process_inbuf(): data from edge 
while in 'waiting for circuit' state. Leaving it on buffer.
    Feb 12 00:13:23.000 [info] connection_read_proxy_handshake(): Proxy Client: 
connection to 127.0.0.1:9001 successful
    Feb 12 00:13:23.000 [info] connection_tls_continue_handshake(): Client got 
a v3 cert!  Moving on to v3 handshake.
    Feb 12 00:13:24.000 [info] circuit_expire_building(): created is 
1329030803.139067; cutoff is 1329030801.611628 (2.526000).
    Feb 12 00:13:24.000 [info] circuit_expire_building(): it's still young 
(1.527439 seconds remain).
    Feb 12 00:13:24.000 [info] command_process_versions_cell(): Negotiated 
version 3 with [scrubbed]:9001; Sending cells: NETINFO
    Feb 12 00:13:24.000 [info] connection_or_client_learned_peer_id(): 
Connected to router $7C03D29CA58BE8EED5F483F31A2DEDF6FD7CC444 at 127.0.0.1:9001 
without knowing its key. Hoping for the best.
    Feb 12 00:13:24.000 [notice] Learned fingerprint 
7C03D29CA58BE8EED5F483F31A2DEDF6FD7CC444 for bridge 127.0.0.1:9001
    Feb 12 00:13:24.000 [info] command_process_certs_cell(): Got some good 
certificates from [scrubbed]:9001: Authenticated it.
    Feb 12 00:13:24.000 [notice] Bootstrapped 15%: Establishing an encrypted 
directory connection.
    Feb 12 00:13:24.000 [info] circuit_send_next_onion_skin(): First hop: 
finished sending CREATE_FAST cell to '<unnamed>'
    Feb 12 00:13:24.000 [info] command_process_netinfo_cell(): Got good NETINFO 
cell from [scrubbed]:9001; OR connection is now open, using protocol version 3. 
Its ID digest is 7C03D29CA58BE8EED5F483F31A2DEDF6FD7CC444
    Feb 12 00:13:25.000 [info] circuit_finish_handshake(): Finished building 
fast circuit hop:
    Feb 12 00:13:25.000 [info] exit circ (length 1, last hop 
0000000000000000000000000000000000000000): 
$0000000000000000000000000000000000000000(open)
    Feb 12 00:13:25.000 [info] circuit_send_next_onion_skin(): circuit built!
    Feb 12 00:13:25.000 [notice] Bootstrapped 20%: Asking for networkstatus 
consensus.
    
    And an unsuccessful run (note "too old"→"Abandoning circ"→"no running 
bridges
    known"):
    
    Feb 12 03:13:21.000 [info] circuit_build_times_set_timeout(): Based on 1000 
circuit times, it looks like we don't need to wait so long for circuits to 
finish. We will now assume a circuit is too slow to use after waiting 5 seconds.
    Feb 12 03:13:21.000 [info] circuit_build_times_set_timeout(): Circuit 
timeout data: 5056.857311ms, 60000.000000ms, Xm: 3193, a: 3.500420, r: 0.219000
    ...
    Feb 12 03:13:23.000 [notice] Bootstrapped 10%: Finishing handshake with 
directory server.
    Feb 12 03:13:23.000 [info] connection_edge_process_inbuf(): data from edge 
while in 'waiting for circuit' state. Leaving it on buffer.
    Feb 12 03:13:23.000 [info] connection_edge_process_inbuf(): data from edge 
while in 'waiting for circuit' state. Leaving it on buffer.
    Feb 12 03:13:23.000 [info] connection_read_proxy_handshake(): Proxy Client: 
connection to 127.0.0.1:9001 successful
    Feb 12 03:13:24.000 [info] circuit_expire_building(): created is 
1329041603.765838; cutoff is 1329041602.236589 (2.528000).
    Feb 12 03:13:24.000 [info] circuit_expire_building(): it's still young 
(1.529249 seconds remain).
    Feb 12 03:13:25.000 [info] connection_tls_continue_handshake(): Client got 
a v3 cert!  Moving on to v3 handshake.
    Feb 12 03:13:25.000 [info] circuit_expire_building(): created is 
1329041603.765838; cutoff is 1329041603.237411 (2.528000).
    Feb 12 03:13:25.000 [info] circuit_expire_building(): it's still young 
(0.528427 seconds remain).
    Feb 12 03:13:26.000 [info] command_process_versions_cell(): Negotiated 
version 3 with [scrubbed]:9001; Sending cells: NETINFO
    Feb 12 03:13:26.000 [info] connection_or_client_learned_peer_id(): 
Connected to router $7C03D29CA58BE8EED5F483F31A2DEDF6FD7CC444 at 127.0.0.1:9001 
without knowing its key. Hoping for the best.
    Feb 12 03:13:26.000 [notice] Learned fingerprint 
7C03D29CA58BE8EED5F483F31A2DEDF6FD7CC444 for bridge 127.0.0.1:9001
    Feb 12 03:13:26.000 [info] command_process_certs_cell(): Got some good 
certificates from [scrubbed]:9001: Authenticated it.
    Feb 12 03:13:26.000 [notice] Bootstrapped 15%: Establishing an encrypted 
directory connection.
    Feb 12 03:13:26.000 [info] circuit_send_next_onion_skin(): First hop: 
finished sending CREATE_FAST cell to '<unnamed>'
    Feb 12 03:13:26.000 [info] command_process_netinfo_cell(): Got good NETINFO 
cell from [scrubbed]:9001; OR connection is now open, using protocol version 3. 
Its ID digest is 7C03D29CA58BE8EED5F483F31A2DEDF6FD7CC444
    Feb 12 03:13:26.000 [info] circuit_expire_building(): created is 
1329041603.765838; cutoff is 1329041604.238231 (2.528000).
    Feb 12 03:13:26.000 [info] circuit_expire_building(): too old (0.472393 
seconds).
    Feb 12 03:13:26.000 [info] circuit_expire_building(): Abandoning circ 
127.0.0.1:9001:14929 (state 0:doing handshakes, purpose 5)
    Feb 12 03:13:26.000 [info] exit circ (length 1, last hop 
0000000000000000000000000000000000000000): 
$0000000000000000000000000000000000000000(waiting for keys)
    Feb 12 03:13:26.000 [info] circuit_build_failed(): Our circuit failed to 
get a response from the first hop (127.0.0.1:9001). I'm going to try to rotate 
to a better connection.
    Feb 12 03:13:26.000 [info] connection_ap_fail_onehop(): Closing one-hop 
stream to '$0000000000000000000000000000000000000000/127.0.0.1' because the OR 
conn just failed.
    Feb 12 03:13:26.000 [info] smartlist_choose_node_by_bandwidth_weights(): 
Empty routerlist passed in to consensus weight node selection for rule weight 
as guard
    Feb 12 03:13:26.000 [info] smartlist_choose_node_by_bandwidth(): Empty 
routerlist passed in to old node selection for rule weight as guard
    Feb 12 03:13:26.000 [info] should_delay_dir_fetches(): delaying dir fetches 
(no running bridges known)
    Feb 12 03:13:26.000 [notice] no known bridge descriptors running yet; 
stalling
    Feb 12 03:13:26.000 [info] _connection_free(): Freeing linked Socks 
connection [waiting for circuit] with 62 bytes on inbuf, 0 on outbuf.
---
 experiments/exercise/exercise.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/experiments/exercise/exercise.sh b/experiments/exercise/exercise.sh
index 834bd48..0557062 100755
--- a/experiments/exercise/exercise.sh
+++ b/experiments/exercise/exercise.sh
@@ -25,7 +25,7 @@ PIDS_TO_KILL+=($!)
 
 sleep 20
 
-"$TOR" UseBridges 1 Bridge 127.0.0.1:9001 Socks4Proxy 127.0.0.1:$LOCAL_PORT &
+"$TOR" UseBridges 1 Bridge 127.0.0.1:9001 Socks4Proxy 127.0.0.1:$LOCAL_PORT 
LearnCircuitBuildTimeout 0 &
 PIDS_TO_KILL+=($!)
 
 sleep 60

_______________________________________________
tor-commits mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits

Reply via email to