Opened 21 months ago

Last modified 19 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 21 months ago.

Download all attachments as: .zip

Change History (6)

comment:1 Changed 21 months ago by teor

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

comment:2 Changed 21 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 21 months ago by weasel

Attachment: time-tor-bootstrap added

comment:3 Changed 21 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 19 months ago by gaba

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


comment:5 Changed 19 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.