[tor-bugs] #23116 [Core Tor/Tor]: tor stops responding to Ctrl-C and circuits while in infinite descriptor download loop

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Aug 17 01:52:24 UTC 2017


#23116: tor stops responding to Ctrl-C and circuits while in infinite descriptor
download loop
--------------------------+------------------------------------
 Reporter:  teor          |          Owner:  (none)
     Type:  defect        |         Status:  new
 Priority:  Medium        |      Milestone:  Tor: 0.3.2.x-final
Component:  Core Tor/Tor  |        Version:  Tor: 0.3.0.9
 Severity:  Normal        |     Resolution:
 Keywords:                |  Actual Points:
Parent ID:  #16844        |         Points:  1
 Reviewer:                |        Sponsor:
--------------------------+------------------------------------
Changes (by teor):

 * parent:   => #16844


Comment:

 The relay spends most of its time blocking on directory download sockets,
 but for some reason never answers the ORPort request. In a 20 second
 sample:
 {{{
 126.00 ms   84.0%       0 s
 connection_dir_client_reached_eof
 79.00 ms   52.6%        0 s
 update_all_descriptor_downloads
 21.00 ms   14.0%        0 s
 microdescs_add_to_cache
 20.00 ms   13.3%        0 s
 count_loading_descriptors_progress
 }}}

 The client hangs when trying to do the SSL handshake with the ORPort:
 {{{
   File "/Users/twilsonb/tor/endosome/link.py", line 236, in
 link_request_cell_list
     max_response_len=max_response_len)
   File "/Users/twilsonb/tor/endosome/link.py", line 85, in link_open
     context = ssl_open(ip, port)
   File "/Users/twilsonb/tor/endosome/connect.py", line 73, in ssl_open
     ssl_socket = ssl.wrap_socket(context['tcp_socket'])
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",
 line 943, in wrap_socket
     ciphers=ciphers)
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",
 line 611, in __init__
     self.do_handshake()
   File
 "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",
 line 840, in do_handshake
     self._sslobj.do_handshake()
 }}}

 * Are ORPort requests delayed until bootstrap completes?
 * Is this a feature?
 * Did we do something to make this much worse in 0.3.0/0.3.1/master?

 This seems similar to the directory request expiry issues in #16844: I
 eventually see directory request expiry log messages from tor.

 I wonder if downloading more microdescs per batch will make this slightly
 less pathological. (I think there's a ticket for this, but I can't find
 it.)

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


More information about the tor-bugs mailing list