Opened 12 years ago

Last modified 7 years ago

#543 closed defect (Fixed)

0.2.0.9-alpha servers don't update enough dir info

Reported by: arma Owned by:
Priority: Low Milestone: 0.2.0.10-alpha
Component: Core Tor/Tor Version: 0.2.0.9-alpha
Severity: Keywords:
Cc: arma, nickm Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Nov 03 22:38:08.163 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 0/1170 usable descriptors.
Nov 03 22:38:08.299 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 7/1170 usable descriptors.
Nov 03 22:38:08.357 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 56/1170 usable descriptors.
Nov 03 22:38:08.403 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 102/1170 usable descriptors.
Nov 03 22:38:08.445 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 152/1170 usable descriptors.
Nov 03 22:38:08.494 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 201/1170 usable descriptors.
Nov 03 22:38:08.534 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 254/1170 usable descriptors.
Nov 03 22:38:08.589 [notice] We now have enough directory information to build c
ircuits.
Nov 03 22:38:14.721 [notice] Tor has successfully opened a circuit. Looks like c
lient functionality is working.

So far so good.

Nov 05 17:01:51.001 [notice] Our directory information is no longer up-to-date e
nough to build circuits.
Nov 05 17:05:54.709 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 301/1230 usable descriptors.
Nov 05 17:05:54.793 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 301/1230 usable descriptors.
Nov 05 17:05:54.833 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 301/1230 usable descriptors.
Nov 05 17:05:55.141 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 301/1230 usable descriptors.
Nov 05 17:06:55.449 [notice] We now have enough directory information to build c
ircuits.
Nov 05 17:15:03.960 [notice] Our directory information is no longer up-to-date e
nough to build circuits.
Nov 05 17:21:09.975 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 293/1197 usable descriptors.
Nov 05 17:21:10.005 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 293/1197 usable descriptors.
Nov 05 17:21:10.030 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 293/1197 usable descriptors.
Nov 05 17:21:10.372 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 293/1197 usable descriptors.
Nov 05 17:36:25.179 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 281/1197 usable descriptors.
Nov 05 17:36:25.206 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 281/1197 usable descriptors.
Nov 05 17:36:25.230 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 281/1197 usable descriptors.
Nov 05 17:36:25.675 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 281/1197 usable descriptors.
Nov 05 17:51:40.348 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 265/1197 usable descriptors.
Nov 05 17:51:40.389 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 265/1197 usable descriptors.
Nov 05 17:51:40.413 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 265/1197 usable descriptors.
Nov 05 17:51:40.755 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 265/1197 usable descriptors.
Nov 05 18:06:54.579 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 255/1198 usable descriptors.
Nov 05 18:06:54.622 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 255/1198 usable descriptors.
Nov 05 18:06:54.768 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 255/1198 usable descriptors.
Nov 05 18:06:54.981 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 255/1198 usable descriptors.
Nov 05 18:14:01.845 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 226/1153 usable descriptors.
Nov 05 18:14:01.862 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 227/1153 usable descriptors.
Nov 05 18:14:01.877 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 229/1153 usable descriptors.
Nov 05 18:22:09.761 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 223/1154 usable descriptors.
Nov 05 18:22:09.795 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 223/1154 usable descriptors.
Nov 05 18:22:09.822 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 223/1154 usable descriptors.
Nov 05 18:22:10.294 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 223/1154 usable descriptors.
Nov 05 18:37:25.011 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 196/1155 usable descriptors.
Nov 05 18:37:25.055 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 196/1155 usable descriptors.
Nov 05 18:37:25.084 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 196/1155 usable descriptors.
Nov 05 18:37:25.592 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 196/1155 usable descriptors.
Nov 05 18:52:40.170 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 187/1155 usable descriptors.
Nov 05 18:52:40.196 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 187/1155 usable descriptors.
Nov 05 18:52:40.217 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 187/1155 usable descriptors.
Nov 05 18:52:40.696 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 187/1155 usable descriptors.
Nov 05 19:07:57.288 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 173/1156 usable descriptors.
Nov 05 19:07:57.316 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 173/1156 usable descriptors.
Nov 05 19:07:57.339 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 173/1156 usable descriptors.
Nov 05 19:07:57.775 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 173/1156 usable descriptors.
Nov 05 19:19:05.298 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 169/1169 usable descriptors.
Nov 05 19:19:05.315 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 170/1169 usable descriptors.
Nov 05 19:19:05.332 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 171/1169 usable descriptors.
Nov 05 19:19:05.347 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 171/1169 usable descriptors.
Nov 05 19:23:12.044 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 168/1169 usable descriptors.
Nov 05 19:23:12.076 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 168/1169 usable descriptors.
Nov 05 19:23:12.096 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 168/1169 usable descriptors.
Nov 05 19:23:12.437 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 168/1169 usable descriptors.
Nov 05 19:38:24.736 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 155/1170 usable descriptors.

...

Nov 05 22:10:57.386 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 55/1160 usable descriptors.
Nov 05 22:15:59.274 [warn] I have no descriptor for the router named "moria1" in

my declared family; I'll use the nickname as is, but this may confuse clients.

Nov 05 22:15:59.274 [warn] I have no descriptor for the router named "moria2" in

my declared family; I'll use the nickname as is, but this may confuse clients.

Nov 05 22:15:59.278 [notice] Application request when we're believed to be offli
ne. Optimistically trying directory fetches again.
Nov 05 22:25:09.857 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 55/1172 usable descriptors.
Nov 05 22:25:09.875 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 57/1172 usable descriptors.
Nov 05 22:25:10.060 [notice] I learned some more directory information, but not
enough to build a circuit: We have only 58/1172 usable descriptors.

it's slowly gone up to 95/1300 usable descriptors.

Something is clearly wrong here. :)

[Automatically added by flyspray2trac: Operating System: All]

Child Tickets

Change History (8)

comment:1 Changed 12 years ago by arma

This is on my bridge, but or-talk people have found it on normal Tor servers too.
My DirPort is on.

comment:2 Changed 12 years ago by nickm

Is this 0.2.0.9-alpha, or trunk?

comment:3 Changed 12 years ago by nickm

On peacetime, with new debugging code:

Nov 06 16:33:04.074 [info] update_consensus_router_descriptor_downloads(): 0 rou
ters downloadable. 0 delayed; 2211 present (200 of those in old_routers); 0 woul
d_reject; 0 wouldnt_use, 0 in progress.

This means that some of the descriptors listed in the consensus are in old_routers, which means
that they'll neither be used, nor re-downloaded. That's a bug!

There are two things we need to do about this:

1) Ensure that when we call router_add_to_routerlist on a router that's listed in the latest

consensus, we always add it to the routerlist as a new router.

2) When we want to download a router that's in the consensus, check to see if we already have

it in old_routers, and if so, re-parse it and make it new a new again.

comment:4 Changed 12 years ago by nickm

Not with a bang but a whimper:

Nov 07 02:37:01.077 [info] update_consensus_router_descriptor_downloads(): 0 rou
ters downloadable. 0 delayed; 2258 present (1344 of those in old_routers); 0 wou
ld_reject; 0 wouldnt_use, 0 in progress.

comment:5 Changed 12 years ago by nickm

So, here's the fix in action.

Nov 07 11:12:57.815 [notice] 235 router descriptors listed in consensus are currently in in old_routers; making them current.
Nov 07 11:12:57.815 [notice] Before: 2173 in routerlist; 14940 in old_routers
Nov 07 11:12:57.903 [notice] After: 2230 in routerlist; 14883 in old_routers
Nov 07 11:12:57.928 [info] update_consensus_router_descriptor_downloads(): 18 ro
uter descriptors downloadable. 0 delayed; 2166 present (235 of those in old_rout
ers); 0 would_reject; 0 wouldnt_use, 0 in progress.

[...]

Nov 07 11:13:58.276 [info] update_consensus_router_descriptor_downloads(): 0 rou
ter descriptors downloadable. 0 delayed; 2184 present (0 of those in old_routers
); 0 would_reject; 0 wouldnt_use, 0 in progress.

It looks like this is working right. The log messages aren't a perfect description of what's going on here,
but looking at the code, they mean that 235 of the descriptors listed in the consensus were languishing in
old_routers, and we moved them back successfully to the real router list.

Now, to fix those log messages and the O(n^2) behavior.

comment:6 Changed 12 years ago by arma

Is it possible this bug appears for v2 directory stuff too? See e.g. bug 447.

comment:7 Changed 11 years ago by nickm

flyspray2trac: bug closed.

comment:8 Changed 7 years ago by nickm

Component: Tor RelayTor
Note: See TracTickets for help on using tickets.