[tor-bugs] #11301 [Tor]: Tor does not reconnect after network loss with bridges
Tor Bug Tracker & Wiki
blackhole at torproject.org
Thu Apr 24 03:58:28 UTC 2014
#11301: Tor does not reconnect after network loss with bridges
-------------------------+-------------------------------------------------
Reporter: | Owner: nickm
mikeperry | Status: needs_information
Type: defect | Milestone: Tor: 0.2.5.x-final
Priority: major | Version:
Component: Tor | Keywords: tor-client, tbb-usability, tbb-
Resolution: | needs, 024-backport, 025-triaged, flashproxy,
Actual Points: | 025-deferrable
Points: | Parent ID:
-------------------------+-------------------------------------------------
Comment (by dcf):
attachment:oops.go is a pluggable transport that reproduces the refusal to
reconnect. It drops its first `-n` connections after `-t` seconds. After
that it works as a pass-through dummy transport. attachment:oops-torrc is
a configuration for it.
To build and run:
{{{
apt-get install golang (or http://golang.org/doc/install)
export GOPATH=$PWD/go
go get
go build
tor -f oops-torrc
}}}
The command line in oops-torrc is `./oops -t 3s -n 10 --log oops.log`.
When I run tor, I get this in oops.log:
{{{
2014/04/23 20:38:37 starting [./oops -t 3s -n 10 --log oops.log]
2014/04/23 20:38:39 got connection 0
2014/04/23 20:38:42 oops! connection 0
2014/04/23 20:38:49 got connection 1
2014/04/23 20:38:52 oops! connection 1
}}}
and this in the tor output:
{{{
Apr 23 20:38:52.000 [info] circuit_build_failed(): Our circuit died before
the first hop with no connection
Apr 23 20:38:52.000 [info] entry_guard_register_connect_status(): Unable
to connect to entry guard '3VXRyxz67OeRoqHn'
(86FA348B038B6A04F2F50135BF84BB74EF63485B
). Marking as unreachable.
Apr 23 20:38:53.000 [notice] Our directory information is no longer up-to-
date enough to build circuits: We have no usable consensus.
Apr 23 20:39:00.000 [info] compute_weighted_bandwidths(): Empty routerlist
passed in to consensus weight node selection for rule weight as guard
Apr 23 20:39:00.000 [info] smartlist_choose_node_by_bandwidth(): Empty
routerlist passed in to old node selection for rule weight as guard
Apr 23 20:39:00.000 [info] should_delay_dir_fetches(): Delaying dir
fetches (no running bridges known)
Apr 23 20:39:00.000 [info] compute_weighted_bandwidths(): Empty routerlist
passed in to consensus weight node selection for rule weight as guard
Apr 23 20:39:00.000 [info] smartlist_choose_node_by_bandwidth(): Empty
routerlist passed in to old node selection for rule weight as guard
Apr 23 20:39:00.000 [info] should_delay_dir_fetches(): Delaying dir
fetches (no running bridges known)
...on and on...
}}}
You might have to play with the timeout and number of connections dropped.
Try deleting datadir if it doesn't work the first time.
tor seems to hang indefinitely if a disconnection happens during the
fetching of descriptors (above 50% bootstrapped). A HUP will get it to
make some more progress. I can also stimulate it into trying again by
making a new SOCKS connection (`curl --socks5-hostname localhost:9099
http://www.example.com`). I haven't figured out how to reproduce the issue
where tor doesn't reconnect even though it gets new SOCKS connections,
though I too have seen that before. It might have to do with the "Tried
for 120 seconds to get a connection" error from #10993.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/11301#comment:8>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list