Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-13T14:47:53Zhttps://gitlab.torproject.org/legacy/trac/-/issues/16762Move most of directory_all_unreachable into a backend callback2020-06-13T14:47:53ZNick MathewsonMove most of directory_all_unreachable into a backend callbackAfter my patch on #16695, the blob becomes smaller, but still quite scary (311 functions in our biggest SCC). If we move the body of directory_all_unreachable into a callback, we can chop that by nearly half.After my patch on #16695, the blob becomes smaller, but still quite scary (311 functions in our biggest SCC). If we move the body of directory_all_unreachable into a callback, we can chop that by nearly half.Tor: 0.2.7.x-finalhttps://gitlab.torproject.org/legacy/trac/-/issues/16506Open subtickets tor improving test coverage in specific areas2020-06-13T14:47:12ZIsabela FernandesOpen subtickets tor improving test coverage in specific areasThis ticket is to track the work related on making sure we have test coverage to the most important pieces of core tor.
The task is to review the output of NickM's coverage script [0,1] and identify the modules that we should write test...This ticket is to track the work related on making sure we have test coverage to the most important pieces of core tor.
The task is to review the output of NickM's coverage script [0,1] and identify the modules that we should write tests for. For each one we identify we will create a sub-ticket to track the actual work of writing the tests for that module.
![0]!https://lists.torproject.org/pipermail/tor-dev/2015-July/009011.html
![1]!https://people.torproject.org/~nickm/volatile/coverage-65a1e27.tar.bz2Tor: 0.2.7.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/legacy/trac/-/issues/16480connection_write_to_buf: indirect recursion for CONN_TYPE_CONTROL2020-06-13T15:10:48Zcypherpunksconnection_write_to_buf: indirect recursion for CONN_TYPE_CONTROLCall of `connection_write_to_buf` for CONN_TYPE_CONTROL allows immediate flush of the outbuf. Then if code tries to log something and `control_event_logmsg` is involved then it call of `connection_write_to_buf` recursively. Consequence c...Call of `connection_write_to_buf` for CONN_TYPE_CONTROL allows immediate flush of the outbuf. Then if code tries to log something and `control_event_logmsg` is involved then it call of `connection_write_to_buf` recursively. Consequence calls blocked by `++disable_log_messages` only then.
Three ways to fix:
1. Remove ability for immediate flush of the outbuf by `connection_write_to_buf`
2. Check `in_connection_handle_write` flag at start of `connection_handle_write`
3. Guard call of `connection_handle_write` by `disable_control_logging` and `enable_control_logging`
Every way have negative and positive impacts.Tor: 0.2.7.x-finalNick MathewsonNick Mathewson