Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-13T15:07:45Zhttps://gitlab.torproject.org/legacy/trac/-/issues/16706Too many connection_edge_process_relay_cell warnings2020-06-13T15:07:45Zs7rToo many connection_edge_process_relay_cell warningsHosting multiple hidden services on a Debian server running Tor 0.2.6.10 (no special setup or config options). I see thousands of such lines in the log files:
```
Jul 31 07:55:39.000 [warn] connection_edge_process_relay_cell (at origin) ...Hosting multiple hidden services on a Debian server running Tor 0.2.6.10 (no special setup or config options). I see thousands of such lines in the log files:
```
Jul 31 07:55:39.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 07:57:59.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:00:36.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:02:49.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:05:12.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:07:30.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:09:49.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:12:09.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:14:30.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:16:50.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:19:11.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:21:45.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:24:14.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:26:27.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:29:01.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:31:18.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:33:38.000 [warn] connection_edge_process_relay_cell (at origin) failed.
Jul 31 08:35:58.000 [warn] connection_edge_process_relay_cell (at origin) failed.
```
All hidden services are working and accessible, didn't reload/restart Tor. What is concerning is that there are so so many of these messages in a very short time. #9635 mentioned this as well, but along with other error messages which were indicating a wrong nTor key. Here we only have a single line, heavily repeated at short time intervals.Tor: 0.3.1.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.orghttps://gitlab.torproject.org/legacy/trac/-/issues/20908Display the fingerprint when downloading consensuses from fallbacks2020-06-13T15:04:06ZteorDisplay the fingerprint when downloading consensuses from fallbacksJust using this for the bug number, will be fixed in #18828.Just using this for the bug number, will be fixed in #18828.Tor: 0.3.1.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20828Should we provide a migration method from the old guard logic to the new one?2020-06-13T15:03:45ZNick MathewsonShould we provide a migration method from the old guard logic to the new one?Our new (prop271) guard code stores guard state in a new way, and makes no effort to look at the old guard state. For clients who are upgrading, should we put more effort into keeping their pre-0.3.0 guards? We need to decide soon.
(I...Our new (prop271) guard code stores guard state in a new way, and makes no effort to look at the old guard state. For clients who are upgrading, should we put more effort into keeping their pre-0.3.0 guards? We need to decide soon.
(I lean towards "no".)Tor: 0.3.0.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20711[warn] Cannot make an outgoing connection without a DirPort2020-06-13T15:03:33ZRoger Dingledine[warn] Cannot make an outgoing connection without a DirPortRunning my close-to-maint-0.2.9 branch as a relay, I get this complaint periodically:
```
Nov 18 02:36:03.747 [warn] Cannot make an outgoing connection without a DirPort.
Nov 18 02:36:03.848 [warn] Cannot make an outgoing connection with...Running my close-to-maint-0.2.9 branch as a relay, I get this complaint periodically:
```
Nov 18 02:36:03.747 [warn] Cannot make an outgoing connection without a DirPort.
Nov 18 02:36:03.848 [warn] Cannot make an outgoing connection without a DirPort.
Nov 18 02:37:03.659 [warn] Cannot make an outgoing connection without a DirPort.
```
I have set ORPort and I have not set DirPort, and also my relay can't find itself reachable (because it isn't).
The code indicates that I should get a stack-trace, but only at info-level, and I lost that log. I'll try to reproduce sometime -- or maybe somebody else will do it first. :)Tor: 0.3.0.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/20458Integration tests should be run locally before committing code changes2020-06-13T15:02:19ZChelsea KomloIntegration tests should be run locally before committing code changesCurrently, it is easy to submit a patch for code changes without first running integration tests locally.
Two changes could help with this:
1. Adding this information to documentation for contributors
2. Adding a make task that runs all...Currently, it is easy to submit a patch for code changes without first running integration tests locally.
Two changes could help with this:
1. Adding this information to documentation for contributors
2. Adding a make task that runs all necessary tasks before contributing new code, which are:
`make check-spaces`
`make check`
`make test-network-all`
We should investigate how to handle:
- Someone not having have chutney
- Someone not having the necessary network connection for integration tests to succeed
- If chutney tests fail because of flakiness (race conditions for example) rather than legitimate failures.Tor: 0.3.1.x-finalChelsea KomloChelsea Komlohttps://gitlab.torproject.org/legacy/trac/-/issues/20400Unreachable code in rend_service_derive_key_digests()2020-06-13T15:02:08ZtwimUnreachable code in rend_service_derive_key_digests()`rend_service_derive_key_digests()` calculates service ID before key digest. But service ID depends on key digest. So if digest calculation fails it will appear in log as `Internal error: couldn't encode service ID.` not as `Couldn't com...`rend_service_derive_key_digests()` calculates service ID before key digest. But service ID depends on key digest. So if digest calculation fails it will appear in log as `Internal error: couldn't encode service ID.` not as `Couldn't compute hash of public key.`.
btw, what's the point of `Internal error: ` prefix?Tor: unspecifiedhttps://gitlab.torproject.org/legacy/trac/-/issues/20307[warn] Remote server sent bogus reason code 650212020-06-13T15:01:58ZRoger Dingledine[warn] Remote server sent bogus reason code 65021On my Tor client running 0.2.9.3-alpha-dev (git-bfaded9143d127cb) on a really crummy network, I got a string of 65 of these lines:
```
Oct 06 16:21:58.020 [warn] Remote server sent bogus reason code 65021
Oct 06 16:21:59.027 [warn] Remot...On my Tor client running 0.2.9.3-alpha-dev (git-bfaded9143d127cb) on a really crummy network, I got a string of 65 of these lines:
```
Oct 06 16:21:58.020 [warn] Remote server sent bogus reason code 65021
Oct 06 16:21:59.027 [warn] Remote server sent bogus reason code 65021
...
```
In fact, I got one of those warns per second for 65 seconds.
But when I look at the more detailed logs for the first one, I see
```
Oct 06 16:21:58.020 [info] circuit_build_failed(): Our circuit failed to get a response from the first hop (62.210.123.24:443). I'm going to try to rotate to a better connection.
Oct 06 16:21:58.020 [info] entry_guard_register_connect_status(): Unable to connect to entry guard 'Alastor' (2EB3C230180694A1E848001E20F36F76A2287039). Marking as unreachable.
Oct 06 16:21:58.020 [warn] Remote server sent bogus reason code 65021
Oct 06 16:21:58.020 [debug] circuit_get_by_circid_channel_impl(): circuit_get_by_circid_channel_impl() returning circuit 0x7fda41028de0 for circ_id 3884794536, channel ID 1 (0x7fda41c62410)
Oct 06 16:21:58.020 [debug] circuitmux_append_destroy_cell(): Cmux at 0x7fda41c625d0 queued a destroy for circ 3884794536, cmux counter is now 1, global counter is now 1
Oct 06 16:21:58.020 [debug] channel_send_destroy(): Sending destroy (circID 3884794536) on channel 0x7fda41c62410 (global ID 1)
```
So it would seem that no "end" cell was received at all. Maybe we are setting END_CIRC_REASON_FLAG_REMOTE somewhere where we shouldn't? Also, what is the mechanism by which the number makes it all the way up to 65021?Tor: 0.2.9.x-finalDavid Gouletdgoulet@torproject.orgDavid Gouletdgoulet@torproject.orghttps://gitlab.torproject.org/legacy/trac/-/issues/20267Use -DOPENSSL_SYS_WIN32 on Windows2020-06-13T15:01:50ZteorUse -DOPENSSL_SYS_WIN32 on WindowsTor fails to compile on Windows MinGW/msys with an error about X509_NAME being an integer literal.
This is because OPENSSL_SYS_WIN32 is not defined, but it should be.
When we are on Win32, we should define this preprocessor directive.Tor fails to compile on Windows MinGW/msys with an error about X509_NAME being an integer literal.
This is because OPENSSL_SYS_WIN32 is not defined, but it should be.
When we are on Win32, we should define this preprocessor directive.Tor: 0.3.1.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/19966torproxy goes south with more than 1 connection attempt per second to a hidde...2020-06-13T15:00:28ZTractorproxy goes south with more than 1 connection attempt per second to a hidden serviceI have a web service running as a tor hidden service. I have a test script that connects to the hidden service through tor proxy, sends a short string, gets a short reply, and then the hidden service closes the connection. Each time th...I have a web service running as a tor hidden service. I have a test script that connects to the hidden service through tor proxy, sends a short string, gets a short reply, and then the hidden service closes the connection. Each time the test script connects, it uses a different socks username, so it should get a fresh tor circuit each time.
This works mostly ok with Tor v0.2.7.6 (git-7a489a6389110120) running on Windows 7 with Libevent 2.0.22-stable, OpenSSL 1.0.1t and Zlib 1.2.8. With four test scripts, it makes about 1 connection per second. Obviously, with any network, it is going to get some connection and network errors, but it recovers eventually.
With Tor v0.2.8.6 (git-4d217548e3f05569) running on Windows 7 with Libevent 2.0.22-stable, OpenSSL 1.0.1t and Zlib 1.2.8, it doesn't run so well. Up to about one connection every two seconds, it runs ok, but as soon as I go above that, tor proxy goes south and starts refusing all connections and the logging error messages shown below. This behavior makes is unsuitable/unreliable to use in a "production" environment.
It seems to not matter what version of tor I use on the hidden service side--only the version on the client side seems to matter, and that is where the errors messages are seen.
This is the contents of my torrc file, which works under v0.2.7.6 but not under v0.2.8.6.
Log notice stdout
LogMessageDomains 1
SafeLogging 0
MaxClientCircuitsPending 200
KeepalivePeriod 15
SocksTimeout 60
NewCircuitPeriod 1
LearnCircuitBuildTimeout 1
CircuitBuildTimeout 60
NumEntryGuards 20
The error messages are:
Aug 23 18:30:32.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:32.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:34.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:34.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:35.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:35.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:35.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:35.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:36.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:36.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:36.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:36.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:36.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:36.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:37.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:37.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:37.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:37.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:37.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:37.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:37.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:37.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:38.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:38.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:39.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:39.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:39.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:39.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:39.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:40.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:40.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:40.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:40.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:40.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:40.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:40.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:40.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:41.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:41.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:42.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:42.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:42.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:42.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:42.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:43.000 [warn] {REND} Fetching v2 rendezvous descriptor failed. Retrying at another directory.
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
Aug 23 18:30:43.000 [notice] {REND} Closing stream for 'vgfdgkr7tudleiq3.onion': hidden service is unavailable (try again later).
**Trac**:
**Username**: AlanTor: 0.3.1.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/18933Several problems with test-network Makefile target2020-06-13T14:56:54ZIsis LovecruftSeveral problems with test-network Makefile targetIn #18240, cypherpunks pointed out that we should use the same `$(EXEEXT)` syntax for finding the appropriate `tor-gencert` and `tor-cov-gencert` in the `test-network` target.
There's a couple other problems with that target:
* `NETWO...In #18240, cypherpunks pointed out that we should use the same `$(EXEEXT)` syntax for finding the appropriate `tor-gencert` and `tor-cov-gencert` in the `test-network` target.
There's a couple other problems with that target:
* `NETWORK_FLAVOUR=${NETWORK_FLAVOUR:-"bridges+hs"}`: the "bridges+hs" network template doesn't exist anymore.
* If `$use_coverage_binary` is set when `src/test/test-network.sh` is called, then chutney will still try to use `tor-gencert` instead of `tor-cov-gencert`. (Also the filename extension problem mentioned above applies here also.Tor: unspecifiedcypherpunkscypherpunks