The Tor Project issueshttps://gitlab.torproject.org/groups/tpo/-/issues2023-06-08T17:51:54Zhttps://gitlab.torproject.org/tpo/core/tor/-/issues/40169Circuit Build Timeout code needs cleanup2023-06-08T17:51:54ZMike PerryCircuit Build Timeout code needs cleanupThere's two places where we time out circuits: `circuit_expire_building` and `circuit_build_times_handle_completed_hop()`. `circuit_expire_building` is filled with 19 years of cruft and complexity, and only operates on the *second* resol...There's two places where we time out circuits: `circuit_expire_building` and `circuit_build_times_handle_completed_hop()`. `circuit_expire_building` is filled with 19 years of cruft and complexity, and only operates on the *second* resolution, instead of milliseconds.
These probably only affect timeout in rare cases -- https://gitlab.torproject.org/tpo/core/tor/-/issues/40157 seems to show that with fixes from https://gitlab.torproject.org/tpo/core/tor/-/issues/40168, then we get very close to the target 20% timeout. But there's so much old cruft here that we should clean it up anyway. It might affect UX very poorly in some edge cases.
This is especially true for onion services, which rely primarily on `circuit_expire_building()`. There's likely many bad performance consequences of this, for them.Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive placesMike PerryMike Perryhttps://gitlab.torproject.org/tpo/core/torspec/-/issues/190Add congestion control related consensus paramenters to params-spec.txt2023-04-12T14:45:57ZGeorg KoppenAdd congestion control related consensus paramenters to params-spec.txtWhile going over some recent sbws MR I was trying to figure out what actually the `bwscanner_cc` consensus param means and it turns out that's not that easy to determine. We should therefore add that one and other congestion control rela...While going over some recent sbws MR I was trying to figure out what actually the `bwscanner_cc` consensus param means and it turns out that's not that easy to determine. We should therefore add that one and other congestion control related consensus parameters to our respective params spec.Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive placeshttps://gitlab.torproject.org/tpo/network-health/metrics/onionperf/-/issues/40022Update onionperf webserver and letsencrypt ansible roles2023-01-17T13:27:00ZAna CusturaUpdate onionperf webserver and letsencrypt ansible rolesThese ansible roles are needed on top of the onionperf playbook to run a webserver with certificates. The roles already exist, and just need finshing off and testing.These ansible roles are needed on top of the onionperf playbook to run a webserver with certificates. The roles already exist, and just need finshing off and testing.Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive placesAna CusturaAna Custurahttps://gitlab.torproject.org/tpo/network-health/exitmap/-/issues/4Investigate circuit build errors in exitmap2022-10-17T10:12:07ZGeorg KoppenInvestigate circuit build errors in exitmapRunning different tests locally and remotely on a server both with Python2 and the upcoming Python3 changes result in circuit build failures 3.15% and 5.83% which seems a lot.
Moreover, the Python3 failure rates (4.29%, 4,78%, and 5.83%...Running different tests locally and remotely on a server both with Python2 and the upcoming Python3 changes result in circuit build failures 3.15% and 5.83% which seems a lot.
Moreover, the Python3 failure rates (4.29%, 4,78%, and 5.83%) seem to be slightly higher than the Python2 ones (3.15% and 3.465) but that could easily be due to the low sample size.
I ran the `checktest` and `patchingTest` modules for that.
While the Python2 code does not show any particular circuit build errors my Python3 logs do sometimes (but not always) e.g.:
```
Traceback (most recent call last):
File "/path/to/exitmap/src/torsocks.py", line 93, in ourneg
orig_neg(*args, **kwargs)
File "/usr/lib/python3/dist-packages/socks.py", line 443, in _negotiate_SOCKS5
self.proxy_peername, self.proxy_sockname = self._SOCKS5_request(
File "/usr/lib/python3/dist-packages/socks.py", line 524, in _SOCKS5_request
resp = self._readall(reader, 3)
File "/usr/lib/python3/dist-packages/socks.py", line 276, in _readall
d = file.read(count - len(data))
File "/usr/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
socket.timeout: timed out
```
or
```
2020-11-06 17:07:51,370 modules.patchingCheck [WARNING] urlopen() failed for <https://metrics.torproject.org/rs.html#details/B08E00F42640CE8B63698DC133F9F35D1177F0BB>: timed out
Traceback (most recent call last):
File "/path/to/exitmap/src/torsocks.py", line 93, in ourneg
orig_neg(*args, **kwargs)
File "/usr/lib/python3/dist-packages/socks.py", line 443, in _negotiate_SOCKS5
self.proxy_peername, self.proxy_sockname = self._SOCKS5_request(
File "/usr/lib/python3/dist-packages/socks.py", line 533, in _SOCKS5_request
raise SOCKS5Error("{:#04x}: {}".format(status, error))
socks.SOCKS5Error: 0x04: Host unreachable
```Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive placeshttps://gitlab.torproject.org/tpo/network-health/metrics/onionperf/-/issues/40021Allow visualisations to have custom axis limits2022-03-21T15:43:22ZAna CusturaAllow visualisations to have custom axis limitsWhile OP can allow plotting multiple datasets along the same axis, sometimes the resulting graphs still need custom axis limits to be useful.
This can be implemented for the cumulative fraction graphs using a command line parameter.While OP can allow plotting multiple datasets along the same axis, sometimes the resulting graphs still need custom axis limits to be useful.
This can be implemented for the cumulative fraction graphs using a command line parameter.Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive placeshttps://gitlab.torproject.org/tpo/core/tor/-/issues/40214Tune KIST and EWMA with Congestion Control2022-02-28T19:41:52ZMike PerryTune KIST and EWMA with Congestion ControlOnce congestion control (Proposal 324) is implemented, we will need to re-visit our KIST and EWMA parameter choices and performance, as EWMA will provide better fairness properties by increasing RTT of overly loud circuits, which will ca...Once congestion control (Proposal 324) is implemented, we will need to re-visit our KIST and EWMA parameter choices and performance, as EWMA will provide better fairness properties by increasing RTT of overly loud circuits, which will cause congestion control to back off.
The KIST interval will also influence the number of circuits that can be involved in prioritization decisions. Larger intervals mean lower throughput, but more prioritization choice. Smaller intervals mean higher throughput, but less prioritization choice.
For some additional background on KIST tuning, see https://gitlab.torproject.org/tpo/core/tor/-/issues/29427.Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive places