Opened 8 months ago

Last modified 6 months ago

#28702 needs_information defect

bootstrapping slow at times

Reported by: weasel Owned by:
Priority: Medium Milestone: Tor: unspecified
Component: Core Tor/Tor Version: Tor:
Severity: Normal Keywords:
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:



Tor, on Debian stretch (Thus linked against libssl 1.1.0f-3+deb9u2), sometimes bootstraps slowly.

The times in the following samples are times (in seconds) from process launch (with a non-existing data directory) until PROGRESS=100 is reported in a getinfo status/bootstrap-phase:

9, 9, 7, 45, 11, 16, 17, 9, 21, 6, 10, 15, 44, 15, 15, 15, 7, 14, 7, 8, 12, 8, 14, 13, 8, 8, 11, 6, 8, 8, 35, 16, 11, 7, 7, 9, 7, 8, 13, 10, 8, 10, 14, 12, 15, 6, 7, 8, 91, 24, 13, 10, 10, 10

Most of the bootstraps are quite comfortable in the sub 20s, but there are a few outliers well above 30 seconds.

This is on an unfiltered network, with low latency and plenty of bandwidth.

Child Tickets

#28703newbootstrapping very slow with filtered networkCore Tor/Tor

Attachments (1)

time-tor-bootstrap (1.3 KB) - added by weasel 8 months ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 8 months ago by teor

Keywords: s8-bootstrap-maybe added
Milestone: Tor: unspecified
Sponsor: Sponsor8-can

comment:2 Changed 8 months ago by teor

How can I see the logs from these instances?
If we're going to tweak the bootstrap config, it would help to know where bootstrap is failing, and the errors that it gives.

Changed 8 months ago by weasel

Attachment: time-tor-bootstrap added

comment:3 Changed 8 months ago by weasel

Should be easy to get timings and logs.


while : ; do if ! ./time-tor-bootstrap TOR-TIMING ; then d="$(date +%s)"; mkdir "$d"; mv -v tor-test/log* "$d"; fi; echo; echo "X."; sleep 3; done

if all you care about is the cases when we went over the timeout. Run

while : ; do ./time-tor-bootstrap TOR-TIMING ; d="tor.logs.$(date +%s)"; mkdir "$d" && mv -v tor-test/log* "$d"; echo; echo "X."; sleep 3; done

if you care about them all.

Best to run this as a dedicated user, because the code drops files all over . and/or ~.

To drop all but http(s), use something like

# iptables -I OUTPUT -m owner --uid-owner w-test -j DROP
# iptables -I OUTPUT -m owner --uid-owner w-test -p tcp -m multiport --dports 80,443 -j ACCEPT

where w-test is the user in question.

comment:4 Changed 6 months ago by gaba

Keywords: s8-bootstrap-maybe removed
Sponsor: Sponsor8-can


comment:5 Changed 6 months ago by teor

Status: newneeds_information

We rebuilt the fallback list and released it in Tor

Are Tor versions with the new list faster to bootstrap?

Note: See TracTickets for help on using tickets.