[tor-bugs] #21394 [Core Tor/Tor]: connection timeouts are affecting Tor Browser usability

Tor Bug Tracker & Wiki blackhole at torproject.org
Sat Feb 4 03:23:40 UTC 2017


#21394: connection timeouts are affecting Tor Browser usability
------------------------------+--------------------------------------------
     Reporter:                |      Owner:
  arthuredelstein             |
         Type:  defect        |     Status:  new
     Priority:  Medium        |  Milestone:
    Component:  Core Tor/Tor  |    Version:
     Severity:  Normal        |   Keywords:  tbb-performance, tbb-usability
Actual Points:                |  Parent ID:
       Points:                |   Reviewer:
      Sponsor:                |
------------------------------+--------------------------------------------
 I have spent some time watching circuit and stream events while connecting
 to different sites. I telnet into tor's config port using the following
 command:
 {{{
 telnet localhost 9151 | ts
 }}}
 I open the browser console and get the tor password by entering
 `m_tb_control_pass`
 And then I paste the result like this:
 `authenticate [value of m_tb_control_pass]`
 Finally I enter
 `setevents circ stream`.

 What I noticed is that a significant fraction of new site connections
 result in at least 1 timeout of 10 seconds. (Tor Browser's
 CircuitStreamTimeout is set to 0, which results in a timeout equal to
 MIN_CIRCUIT_STREAM_TIMEOUT, or 10 seconds.) Here's what it looks like:
 {{{
 Feb 03 19:00:03 650 STREAM 868 NEW 0 people.torproject.org:443
 SOURCE_ADDR=127.0.0.1:50318 PURPOSE=USER
 Feb 03 19:00:03 650 CIRC 149 LAUNCHED BUILD_FLAGS=NEED_CAPACITY
 PURPOSE=GENERAL TIME_CREATED=2017-02-04T03:00:03.738597
 Feb 03 19:00:03 650 CIRC 149 EXTENDED [...] BUILD_FLAGS=NEED_CAPACITY
 PURPOSE=GENERAL TIME_CREATED=2017-02-04T03:00:03.738597
 SOCKS_USERNAME="torproject.org"
 SOCKS_PASSWORD="7d8ea4ccf4ba6345846e0fccacd4d941"
 Feb 03 19:00:04 650 CIRC 149 EXTENDED [...] BUILD_FLAGS=NEED_CAPACITY
 PURPOSE=GENERAL TIME_CREATED=2017-02-04T03:00:03.738597
 SOCKS_USERNAME="torproject.org"
 SOCKS_PASSWORD="7d8ea4ccf4ba6345846e0fccacd4d941"
 Feb 03 19:00:04 650 CIRC 149 EXTENDED [...] BUILD_FLAGS=NEED_CAPACITY
 PURPOSE=GENERAL TIME_CREATED=2017-02-04T03:00:03.738597
 SOCKS_USERNAME="torproject.org"
 SOCKS_PASSWORD="7d8ea4ccf4ba6345846e0fccacd4d941"
 Feb 03 19:00:04 650 CIRC 149 BUILT [...] BUILD_FLAGS=NEED_CAPACITY
 PURPOSE=GENERAL TIME_CREATED=2017-02-04T03:00:03.738597
 SOCKS_USERNAME="torproject.org"
 SOCKS_PASSWORD="7d8ea4ccf4ba6345846e0fccacd4d941"
 Feb 03 19:00:04 650 STREAM 868 SENTCONNECT 149 people.torproject.org:443
 Feb 03 19:00:13 650 CIRC 80 CLOSED [...] BUILD_FLAGS=NEED_CAPACITY
 PURPOSE=GENERAL TIME_CREATED=2017-02-04T02:49:06.591888
 SOCKS_USERNAME="torproject.org"
 SOCKS_PASSWORD="5e171046f4d18a1138280b0199e5ccbd" REASON=FINISHED
 Feb 03 19:00:14 650 STREAM 868 DETACHED 149 people.torproject.org:443
 REASON=TIMEOUT
 Feb 03 19:00:14 650 CIRC 150 LAUNCHED BUILD_FLAGS=NEED_CAPACITY
 PURPOSE=GENERAL TIME_CREATED=2017-02-04T03:00:14.588714
 }}}

 I did an experiment where I connected to
 people.torproject.org/~arthuredelstein (a page with hardly any content)
 and then repeatedly selected "New Tor Circuit for this Site" 50 times.

 Here are the results for 50 reloads. Each digit represents the number of
 10-second stream timeouts observed before a given connection succeeded.
 20020000000000000000002010000000000001000100000103

 In other words 8 out of 50 connections showed a timeout. And
 interestingly, four of these connections exhibited a double or triple
 timeout (20 or 30 seconds delay).

 I think this may be a big part of the perception of Tor Browser as "slow".
 Actual loading of pages doesn't seem drastically slow to me, and once I
 have successfully connected to a new site, following links to other pages
 on the same site (i.e., the same circuit) is usually acceptable.

 (I also did another quick test on another site and 5/25 connections had at
 least 1 timeout.)

 So here are some questions for further investigation:
 * Why are there so many timeouts? Are any of these timeouts due to silent
 errors in a Tor node? (If such errors could be reported, maybe we could
 avoid the long timeout.)
 * What's the reason for MIN_CIRCUIT_STREAM_TIMEOUT being 10 seconds? Would
 it do any harm to make this shorter, say 5 seconds or 2 seconds?
 * So many double or triple timeouts are suspicious, because they are using
 different circuits. Could this mean the connection error is caused by the
 client or guard?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/21394>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list