mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
4046b9f3ee996258e2335c64e7b914df7185ffc9
The connection_ap_attach_pending() function processes all pending streams in the pending_entry_connections list. It first copy the pointer and then allocates a brand new empty list. It then iterates over that copy pointer to try to attach entry connections onto any fitting circuits using connection_ap_handshake_attach_circuit(). That very function, for onion service, can lead to flagging _all_ streams of the same onion service to be put in state RENDDESC_WAIT from CIRCUIT_WAIT. By doing so, it also tries to remove them from the pending_entry_connections but at that point it is already empty. Problem is that the we are iterating over the previous pending_entry_connections which contains the streams that have just changed state and are no longer in CIRCUIT_WAIT. This lead to this bug warning occuring a lot on busy services: May 01 08:55:43.000 [warn] connection_ap_attach_pending(): Bug: 0x55d8764ae550 is no longer in circuit_wait. Its current state is waiting for rendezvous desc. Why is it on pending_entry_connections? (on Tor 0.4.4.0-alpha-dev ) This fix is minimal and basically allow a state to be not CIRCUIT_WAIT and move on to the next one without logging a warning. Because the pending_entry_connections is emptied before processing, there is no chance for a streams to be stuck there forever thus it is OK to ignore streams not in the right state. Fixes #34083 Signed-off-by: David Goulet <dgoulet@torproject.org>
Tor protects your privacy on the internet by hiding the connection
between your Internet address and the services you use. We believe Tor
is reasonably secure, but please ensure you read the instructions and
configure it properly.
To build Tor from source:
./configure && make && make install
To build Tor from a just-cloned git repository:
sh autogen.sh && ./configure && make && make install
Home page:
https://www.torproject.org/
Download new versions:
https://www.torproject.org/download/download.html
Documentation, including links to installation and setup instructions:
https://www.torproject.org/docs/documentation.html
Making applications work with Tor:
https://gitlab.torproject.org/legacy/trac/-/wikis/doc/TorifyHOWTO
Frequently Asked Questions:
https://www.torproject.org/docs/faq.html
Release timeline:
https://gitlab.torproject.org/tpo/core/team/-/wikis/NetworkTeam/CoreTorReleases
To get started working on Tor development:
See the doc/HACKING directory.
Description
Languages
C
94.4%
Python
1.5%
C++
1.1%
Shell
1.1%
M4
0.9%
Other
0.8%