Unable to bootstrap when no relays meet criteria; logging messages unhelpful
Very minor thing but when tor is unable to create a circuit that meets the torrc's criteria tor fails to bootstrap in a confusing way. For example, stem's tutorial demos exiting through Russia but the tor network doesn't have any Russian exits right now. The result is that tor bootstrapping hangs at 45% ("Asking for relay descriptors")...
torrc:
ExitNodes {ru}
tor output:
Jun 04 08:56:59.794 [notice] Tor v0.2.7.1-alpha-dev (git-d5e4a6343694574c) running on Linux with Libevent 2.0.16-stable, OpenSSL 1.0.1 and Zlib 1.2.3.4.
Jun 04 08:56:59.794 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jun 04 08:56:59.794 [notice] This version is not a stable Tor release. Expect more bugs than usual.
Jun 04 08:56:59.802 [notice] Opening Socks listener on 127.0.0.1:7000
Jun 04 08:56:59.000 [warn] Failed to open GEOIP file /usr/local/share/tor/geoip. We've been configured to use (or avoid) nodes in certain countries, and we need GEOIP information to figure out which ones they are.
Jun 04 08:56:59.000 [warn] Failed to open GEOIP file /usr/local/share/tor/geoip6. We've been configured to use (or avoid) nodes in certain countries, and we need GEOIP information to figure out which ones they are.
Jun 04 08:56:59.000 [notice] Bootstrapped 0%: Starting
Jun 04 08:57:02.000 [notice] Bootstrapped 45%: Asking for relay descriptors
Rather than just hang we should emit a message saying what's up. Maybe terminate too.