[tor-bugs] #20499 [Core Tor/Tor]: A running Tor won't update the microdesc consensus

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Nov 7 13:31:30 UTC 2016


#20499: A running Tor won't update the microdesc consensus
-------------------------------------------+-------------------------------
 Reporter:  rubiate                        |          Owner:
     Type:  defect                         |         Status:
                                           |  needs_revision
 Priority:  High                           |      Milestone:  Tor:
                                           |  0.2.9.x-final
Component:  Core Tor/Tor                   |        Version:  Tor:
                                           |  0.2.9.4-alpha
 Severity:  Normal                         |     Resolution:
 Keywords:  regression, CoreTorTeam201611  |  Actual Points:
Parent ID:                                 |         Points:
 Reviewer:                                 |        Sponsor:
-------------------------------------------+-------------------------------
Changes (by teor):

 * keywords:  regression => regression, CoreTorTeam201611
 * status:  needs_review => needs_revision


Comment:

 As well as the commits in 20499_part1_029, I think we should also merge
 #20533 to fix the one-download-multiple-failure case.

 We could also merge #20591, I don't think it's causing this particular
 issue, but it could make it worse if the bug is ever triggered.

 If we really do want every failure to result in a schedule increment, we
 have to remove the following code:

 download_status_increment_failure:
 {{{
   /* only count the failure if it's permanent, or we're a server */
   if (status_code != 503 || server) {
     if (dls->n_download_failures < IMPOSSIBLE_TO_DOWNLOAD-1)
       ++dls->n_download_failures;
   }
 }}}

 Because combined with this code in download_status_schedule_get_delay, it
 causes a reset on every 503:
 {{{
     /* Check if we missed a reset somehow */
     if (dls->last_backoff_position > dls_schedule_position) {
       dls->last_backoff_position = 0;
       dls->last_delay_used = 0;
     }
 }}}

 Which is exactly what we don't want when relays are busy - imagine clients
 doing an automatic reset every time they DoS a relay...

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


More information about the tor-bugs mailing list