David,
I'd like to see more of your HAProxy configuration. Do you not have to use transparent proxy mode with Snowflake instances as you do with Tor Relay instances? I hadn't realized HAProxy had a client timeout. Thank you for that tidbit. And thank you for referencing my comments as well.
I found your HAProxy configuration in your "Draft installation guide." It seems you're using regular TCP streaming mode with the Snowflake instances vs transparent TCP streaming mode, which is a notable difference with the directly loadbalanced Tor Relay configuration. I also noticed you've configured the backend node timeout globally vs per node, which is just a nuance. You might test using a timeout value of 0s (to disable the timeout at the loadbalancer) and allow the Snowflake instances to preform state checking to ensure HAProxy isn't throttling your bridge. I've tested both and I'm still not sure which timeout configuration makes most sense for this style implementation. Currently, I'm running with the 0s (disabled) timeout. Any reason why you chose HAProxy over Nginx? I did notice that you're using the AssumeReachable 1 directive in your torrc files. Are you running into an issue where your Tor instances are failing the reachability test? Initially, I ran into a reachability issue and after digging through mountains of Tor debug logs discovered I needed to use transparent TCP streaming mode along with the Linux kernel and iptables changes to route the Tor traffic back from the Tor Relay Nodes to the loadbalancer. You shouldn't need to run your Tor instances with the AssumeReachable 1 directive. This might suggest something in your configuration isn't quite right. One of my initial tests was staggering the startup of my instances to see how they randomly reported to the DirectoryAuthorities. It's how I discovered that Tor instances pushed instead polled meta-data (different uptimes). The later would work better in a loadbalanced style deployment. Do your Snowflake instances not have issues reporting to different DirectoryAuthorities? My Tor instances have issues if I don't have them all report to the same DirectoryAuthority. Keep up the excellent work. Respectfully,
Gary— This Message Originated by the Sun. iBigBlue 63W Solar Array (~12 Hour Charge) + 2 x Charmast 26800mAh Power Banks = iPhone XS Max 512GB (~2 Weeks Charged)