Simone Basso
Simone Basso
I spent some time wondering whether this crash could be a memory corruption caused by code we introduced in https://github.com/ooni/probe-cli/pull/1052 and other pull requests. To understand whether that was the...
With https://github.com/ooni/probe-cli/pull/1077/commits/a372027d3a2060fce9d77cbee5c91dd4b2a0f705, I tried to make a reproducible test case for Linux but, so far, no luck.
Hooray! I could finally reproduce the issue on Linux after 26 repetitions. This is the relevant crash log: ``` 2023/03/21 15:33:18 info ptx: started socks listener at 127.0.0.1:36089 2023/03/21 15:33:18...
It turns out the previous patch produced not-so-actionable data. Here's a better patch: ```diff diff --git a/src/lib/pubsub/pubsub_check.c b/src/lib/pubsub/pubsub_check.c index 99e604d715..a5cc4b7658 100644 --- a/src/lib/pubsub/pubsub_check.c +++ b/src/lib/pubsub/pubsub_check.c @@ -25,6 +25,7 @@ #include...
This time it crashed in a completely different way after 24 runs: ``` 2023/03/21 16:49:03 info ptx: started socks listener at 127.0.0.1:32985 2023/03/21 16:49:03 info torsf: rendezvous method: '' 2023/03/21...
Another crash (we are starting to shed some light on what happens, I think) after 17 runs: ``` 2023/03/21 17:38:19 info ptx: started socks listener at 127.0.0.1:42891 2023/03/21 17:38:19 info...
I tried to use `vanillator` instead of `torsf`. I also forgot I had previously exported: ```bash export CGO_LDFLAGS="-ltsan" ``` This export turned out to be quite serendipitous (well, maybe?). Here's...
I added https://github.com/ooni/probe-cli/pull/1077/commits/51292a49e41ae9283b8212726c466d90ff1d9d38 and https://github.com/ooni/probe-cli/pull/1077/commits/9e5e96710f9b0f57ee5c8346fece4745375c0560, which solve part of the data race that existed, however, I still see the following in the logs: ``` [snip] 2023/03/22 10:11:38 info ************* now...
With https://github.com/ooni/probe-cli/pull/1077/commits/ef7ec1494b3d5f84233006034a1888d63e726393, I wrote a C test case that bypasses Go code and runs tor more or less like we run it from Go. The main difference with that code...
So, I managed to write a minimal example to reproduce the behavior. Copying from my notes: 1. `git clone https://gitlab.torproject.org/tpo/core/tor` 2. `cd tor` 3. `git checkout tor-0.4.7.13` 4. `git apply...