[tor-bugs] #16585 [Tor]: relay stops forwarding all traffic when client function cannot establish circuits -- scheduler_run() starvation
Tor Bug Tracker & Wiki
blackhole at torproject.org
Sat Aug 15 17:37:27 UTC 2015
#16585: relay stops forwarding all traffic when client function cannot establish
circuits -- scheduler_run() starvation
---------------------------+---------------------------
Reporter: starlight | Owner:
Type: defect | Status: new
Priority: major | Milestone:
Component: Tor | Version: Tor: 0.2.6.10
Resolution: | Keywords:
Actual Points: | Parent ID:
Points: |
---------------------------+---------------------------
Comment (by starlight):
Looking at it more, it seems the biggest delays are
associated with searching the database of relays
for new circuit paths.
Seems to me this massive transaction should be
handled as an independent event queued off to
a worker thread, but that it is presently
handled in the main relay worker code path.
Probably back when only 2000 relays existed
the delays were barely noticeable, but with
the population 7000 and rising the problem
will only become worse with time.
The system where this ran has two cores but
the second worker thread/core never hits more
than 1% utilization. Have run `top` while
provoking the issue and is clear that the
problem is a CPU-bound main `tor` thread.
NOTE: In the attached "interesting" log
extraction, all [debug] lines are removed
from the first section above the line-break.
Below the line-break, only selected [debug]
entries are included, and `channel_write_packed_cell()`
lines are collapsed to show just the number
of invocations.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16585#comment:7>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list