[tor-bugs] #962 [Tor Relay]: bandwidth change makes relay publish but authorities discard

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Thu Nov 11 16:19:13 UTC 2010


#962: bandwidth change makes relay publish but authorities discard
--------------------------------+-------------------------------------------
 Reporter:  arma                |         Type:  defect   
   Status:  new                 |     Priority:  minor    
Milestone:  Tor: 0.2.3.x-final  |    Component:  Tor Relay
  Version:  0.2.0.31            |   Resolution:  None     
 Keywords:                      |       Parent:           
--------------------------------+-------------------------------------------
Changes (by nickm):

  * milestone:  post 0.2.1.x => Tor: 0.2.3.x-final


Old description:

> Apr 01 09:45:39.145 [info] dirserv_add_descriptor(): Added descriptor
> from 'fluxe3' (source: 78.47.18.110): Valid server updated.
> Apr 01 18:52:28.976 [info] dirserv_add_descriptor(): Not replacing
> descriptor from 'fluxe3' (source: 78.47.18.110); differences are
> cosmetic.
>
> shahn> I also reloaded it at 22:52 on April 1st
>
> >what exactly did you change?
>
> shahn> RelayBandwidthRate 150 KBytes (was at 10000 or something insanely
> high)
> shahn> and RelayBandwidthBurst 200 KBytes (was at 15000)
>
> > see options_transition_affects_descriptor() in config.c
> > If
> >    * you changed your bandwidthrate but maxadvertisedbandwidth still
> >    * trumps, no need to republish.
> > as part of an XXX
> > then compare to router_differences_are_cosmetic()
> > any differences between these two functions will cause bugs like yours.
> > in the latter, it does
> >   /* Did bandwidth change a lot? */
> >   if ((r1->bandwidthcapacity < r2->bandwidthcapacity/2) ||
> >       (r2->bandwidthcapacity < r1->bandwidthcapacity/2))
> >     return 0;
> > in the former, it says "did they change at all"
>
> what the relay should do is make a new descriptor, and then call
> router-differences-are-cosmetic on it, and revert if cosmetic.
> that way we're using the same function, rather than trying to keep the
> checks the same in both cases.
>

> [Automatically added by flyspray2trac: Operating System: All]

New description:

 Apr 01 09:45:39.145 [info] dirserv_add_descriptor(): Added descriptor from
 'fluxe3' (source: 78.47.18.110): Valid server updated.
 Apr 01 18:52:28.976 [info] dirserv_add_descriptor(): Not replacing
 descriptor from 'fluxe3' (source: 78.47.18.110); differences are cosmetic.

 shahn> I also reloaded it at 22:52 on April 1st

 >what exactly did you change?

 shahn> RelayBandwidthRate 150 KBytes (was at 10000 or something insanely
 high)
 shahn> and RelayBandwidthBurst 200 KBytes (was at 15000)

 > see options_transition_affects_descriptor() in config.c
 > If
 >    * you changed your bandwidthrate but maxadvertisedbandwidth still
 >    * trumps, no need to republish.
 > as part of an XXX
 > then compare to router_differences_are_cosmetic()
 > any differences between these two functions will cause bugs like yours.
 > in the latter, it does
 >   /* Did bandwidth change a lot? */
 >   if ((r1->bandwidthcapacity < r2->bandwidthcapacity/2) ||
 >       (r2->bandwidthcapacity < r1->bandwidthcapacity/2))
 >     return 0;
 > in the former, it says "did they change at all"

 what the relay should do is make a new descriptor, and then call
 router-differences-are-cosmetic on it, and revert if cosmetic.
 that way we're using the same function, rather than trying to keep the
 checks the same in both cases.


 [Automatically added by flyspray2trac: Operating System: All]

--

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


More information about the tor-bugs mailing list