__DisablePredictedCircuits causes bootstrap to hang at "Connecting to Tor Network"
When __DisablePredictedCircuits
is set in the torrc, bootstrap hangs at 80% - "Connecting to Tor Network".
This happens in hidden service configurations, it may happen in other client or server configurations as well.
I think this is because:
- no predicted circuits are being built, and therefore
- tor never completes an OR connection, and therefore
- tor never thinks it has bootstrapped, and therefore
- tor doesn't make any of the OR connections it would make as part of its configured function
To fix this, we need to either:
- assume tor is connected to the network if it gets to "Connecting to Tor Network" and
__DisablePredictedCircuits
is set, or - make at least one connection at "Connecting to Tor Network" even if
__DisablePredictedCircuits
is set
The first risks repeatedly making connections if tor isn't connected to the network, the second risks making connections the user doesn't want.