[tor-bugs] #2149 [Tor]: new 'extra dormant' mode for people who never use their tor

Tor Bug Tracker & Wiki blackhole at torproject.org
Wed Feb 6 06:23:53 UTC 2013


#2149: new 'extra dormant' mode for people who never use their tor
--------------------------------------------+-------------------------------
 Reporter:  arma                            |          Owner:                    
     Type:  enhancement                     |         Status:  needs_information 
 Priority:  major                           |      Milestone:  Tor: 0.2.4.x-final
Component:  Tor                             |        Version:                    
 Keywords:  performance scaling tor-client  |         Parent:                    
   Points:                                  |   Actualpoints:                    
--------------------------------------------+-------------------------------
Changes (by sysrqb):

  * status:  needs_revision => needs_information


Comment:

 Thanks to both of you for the review. (I'm sorry this ticket is such a
 mess)

 Replying to [comment:21 nickm]:
 > I've started a feature2149 branch in my public repo based on that
 branch, and started to fix some issues there .  Some more mostly cosmetic
 things I'd like to fix before merging, based on a conversation with
 andrea:
 >
 >  * exporting get_connections() to dirserv.c is a bit silly

 (Assuming get_connection_array()) I was using that for debugging, we don't
 need to say how many open circuits we have when we go dormant.

 >  * We should make sure that new DNS requests count as client activity

 I don't think this currently does. It looks like we need to catch requests
 in dnsserv.c:evdns_server_callback(), i think?

 >  * We need to call or_mark_state_dirty when clearing Dormant and
 DormantStage as well

 Looks like I missed that.

 >  * The interval needed to become dormant should be configurable, for
 testing if nothing else.

 Yeah, I was doing this by hand. Torrc option AllowEnterDormancy? Values >
 0 define time period the client must be inactive, 0 disables this feature?

 >  * We should make sure that hidden services can never go dormant, and
 that adding a hidden service makes a node non-dormant.

 I was relying on server_mode() to determine if Tor was an OP or OR. TBH I
 didn't check if it considered Hidden Services. I just took a look and I
 gathered that we can  check that rend_service_list == NULL, is there a
 better way to do it?

 >  * We should be consistent about invoking
 directory_too_idle_to_fetch_consensuses() versus testing Dormant directly.

 I'm having trouble remembering the specific case for this. It had to do
 with a variable not be initialized until later in bootstrapping but either
 I can't find it now or I missed something before.

 >  * I also wonder if putting this "CONN_PAUSED" business at the
 81%-bootstrapped level is right.  It seems that after that, it's likely to
 go and immediately fetch the consensus, so maybe it should be less
 bootstrapped than if we'd fetched no consensus

 This was actually purely a guess, the percentage/location were chosen only
 for the sake of simplicity. I'll look into finding a more appropriate
 place.

 Marking Needs Info due to questions about catching DNS requests, checking
 for hidden services, and torrc option.

 Thanks again. I'll base any patches on your branch.

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


More information about the tor-bugs mailing list