These changes were introduced in d5a151a in 0.3.1.1.
Maybe we should:
revert the changes, or increase the values
make consensus parameters for them
+/** If we haven't yet decided on a good timeout value for circuit+ * building, we close idle circuits aggressively so we can get more+ * data points. */+#define IDLE_TIMEOUT_WHILE_LEARNING (1*60)
-/** If we haven't yet decided on a good timeout value for circuit- * building, we close idles circuits aggressively so we can get more- * data points. */-#define IDLE_TIMEOUT_WHILE_LEARNING (10*60)
Woah. Yeah. So, right now we close circuits 60 seconds after making them, even if we opt to make testing circuits much less frequently? That is, when we have any predicted ports, we're going to end up churning through all our circuits every minute, anyway? That's crummy. It seems like the idle-timeout-while-learning should be a function of the cbttestfreq?
Woah. Yeah. So, right now we close circuits 60 seconds after making them, even if we opt to make testing circuits much less frequently? That is, when we have any predicted ports, we're going to end up churning through all our circuits every minute, anyway? That's crummy. It seems like the idle-timeout-while-learning should be a function of the cbttestfreq?
Yes, I think we need to make it configurable, and possibly backport the change.
(But not to 0.2.8, because it's not supported as of 1 January 2018.)
I'm not sure what to do about the regular connection timeout. We should check what it was before, and maybe see if it needs to be longer.
This also came up in #24228 (moved), where we found that Tor was creating a new circuit about every 6 seconds with this timeout.
The goal is to learn a circuit build timeout within 30 minutes, so that unused orconn connections aren't padded by the netflow padidng for too long while we learn this timeout (which wastes bandwidth for clients that want less padding). In #24228 (moved), it looked like we may actually learn it within 10. So we could make this default 3X slower.
I will look at this and work on a patch to change the default and make it a consensus param.
Trac: Status: new to assigned Owner: N/Ato mikeperry