[tor-bugs] #25182 [Core Tor/Tor]: systemd unit file starts Tor before IPv6 address is available

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Mar 12 08:45:37 UTC 2018


#25182: systemd unit file starts Tor before IPv6 address is available
---------------------------+------------------------------------
 Reporter:  sjmurdoch      |          Owner:  (none)
     Type:  defect         |         Status:  closed
 Priority:  Medium         |      Milestone:  Tor: 0.3.4.x-final
Component:  Core Tor/Tor   |        Version:  Tor: 0.3.3.1-alpha
 Severity:  Normal         |     Resolution:  invalid
 Keywords:  ipv6, systemd  |  Actual Points:
Parent ID:  #24403         |         Points:
 Reviewer:                 |        Sponsor:
---------------------------+------------------------------------

Old description:

> On Ubuntu xenial, systemd starts Tor before the IPv6 address is available
> and so Tor fails to assign an IPv6 address then exits. systemd tries to
> restart Tor (I think three times) but even by the last time there's still
> no IPv6 address assigned and hence Tor fails to start.
>
> As a work-around I added `RestartSec=10` to the systemd unit file to slow
> down the restart such that by the second time tor starts, there is an
> IPv6 address available.
>
> See log file below.
>
> {{{
> Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.587 [notice] Tor
> 0.3.3.1-alpha (git-dc340725f08717e3) running on Linux with Libevent
> 2.0.21-stable, OpenSSL 1.0.2g, Zlib 1.2.8, Liblzma 5.1
> .0alpha, and Libzstd N/A.
> Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] Tor can't
> help you if you use it wrong! Learn how to be safe at
> https://www.torproject.org/download/download#warning
> Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] This
> version is not a stable Tor release. Expect more bugs than usual.
> Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] Read
> configuration file "/usr/share/tor/tor-service-defaults-torrc".
> Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] Read
> configuration file "/etc/tor/torrc".
> Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.591 [notice] Based on
> detected system memory, MaxMemInQueues is set to 8192 MB. You can
> override this by setting MaxMemInQueues by hand.
> Feb 08 15:06:28 ephemer tor[1313]: Configuration was valid
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Tor
> 0.3.3.1-alpha (git-dc340725f08717e3) running on Linux with Libevent
> 2.0.21-stable, OpenSSL 1.0.2g, Zlib 1.2.8, Liblzma 5.1
> .0alpha, and Libzstd N/A.
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Tor can't
> help you if you use it wrong! Learn how to be safe at
> https://www.torproject.org/download/download#warning
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] This
> version is not a stable Tor release. Expect more bugs than usual.
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Read
> configuration file "/usr/share/tor/tor-service-defaults-torrc".
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Read
> configuration file "/etc/tor/torrc".
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Based on
> detected system memory, MaxMemInQueues is set to 8192 MB. You can
> override this by setting MaxMemInQueues by hand.
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Scheduler
> type KIST has been enabled.
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening
> Socks listener on 127.0.0.1:9050
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening
> OR listener on 0.0.0.0:9001
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening
> OR listener on [2001:630:212:2a8:a6bf:1ff:fe25:b961]:9001
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [warn] Could not
> bind to 2001:630:212:2a8:a6bf:1ff:fe25:b961:9001: Cannot assign requested
> address
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening
> Directory listener on 0.0.0.0:9030
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Closing
> partially-constructed Socks listener on 127.0.0.1:9050
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Closing
> partially-constructed OR listener on 0.0.0.0:9001
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Closing
> partially-constructed Directory listener on 0.0.0.0:9030
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [warn] Failed to
> parse/validate config: Failed to bind one of the listener ports.
> Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [err] Reading
> config failed--see warnings above.
> Feb 08 15:06:28 ephemer systemd[1]: tor at default.service: Main process
> exited, code=exited, status=1/FAILURE
> -- Subject: Unit tor at default.service has failed
> -- Unit tor at default.service has failed.
> Feb 08 15:06:28 ephemer systemd[1]: tor at default.service: Unit entered
> failed state.
> Feb 08 15:06:28 ephemer systemd[1]: tor at default.service: Failed with
> result 'exit-code'.
> }}}

New description:

 On Ubuntu xenial, systemd starts Tor before the IPv6 address is available
 and so Tor fails to assign an IPv6 address then exits. systemd tries to
 restart Tor (I think three times) but even by the last time there's still
 no IPv6 address assigned and hence Tor fails to start.

 As a work-around I copied `/lib/systemd/system/tor*` to
 `/etc/systemd/system/` and added `RestartSec=10` to the `[Service]`
 section of `tor at default.service` and `tor at .service`. This slows down the
 restart such that by the second time tor starts, there is an IPv6 address
 available.

 See log file below.

 {{{
 Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.587 [notice] Tor
 0.3.3.1-alpha (git-dc340725f08717e3) running on Linux with Libevent
 2.0.21-stable, OpenSSL 1.0.2g, Zlib 1.2.8, Liblzma 5.1
 .0alpha, and Libzstd N/A.
 Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] Tor can't
 help you if you use it wrong! Learn how to be safe at
 https://www.torproject.org/download/download#warning
 Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] This
 version is not a stable Tor release. Expect more bugs than usual.
 Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] Read
 configuration file "/usr/share/tor/tor-service-defaults-torrc".
 Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.588 [notice] Read
 configuration file "/etc/tor/torrc".
 Feb 08 15:06:28 ephemer tor[1313]: Feb 08 15:06:28.591 [notice] Based on
 detected system memory, MaxMemInQueues is set to 8192 MB. You can override
 this by setting MaxMemInQueues by hand.
 Feb 08 15:06:28 ephemer tor[1313]: Configuration was valid
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Tor
 0.3.3.1-alpha (git-dc340725f08717e3) running on Linux with Libevent
 2.0.21-stable, OpenSSL 1.0.2g, Zlib 1.2.8, Liblzma 5.1
 .0alpha, and Libzstd N/A.
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Tor can't
 help you if you use it wrong! Learn how to be safe at
 https://www.torproject.org/download/download#warning
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] This
 version is not a stable Tor release. Expect more bugs than usual.
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Read
 configuration file "/usr/share/tor/tor-service-defaults-torrc".
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.651 [notice] Read
 configuration file "/etc/tor/torrc".
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Based on
 detected system memory, MaxMemInQueues is set to 8192 MB. You can override
 this by setting MaxMemInQueues by hand.
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Scheduler
 type KIST has been enabled.
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening
 Socks listener on 127.0.0.1:9050
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening OR
 listener on 0.0.0.0:9001
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening OR
 listener on [2001:630:212:2a8:a6bf:1ff:fe25:b961]:9001
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [warn] Could not
 bind to 2001:630:212:2a8:a6bf:1ff:fe25:b961:9001: Cannot assign requested
 address
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Opening
 Directory listener on 0.0.0.0:9030
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Closing
 partially-constructed Socks listener on 127.0.0.1:9050
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Closing
 partially-constructed OR listener on 0.0.0.0:9001
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [notice] Closing
 partially-constructed Directory listener on 0.0.0.0:9030
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [warn] Failed to
 parse/validate config: Failed to bind one of the listener ports.
 Feb 08 15:06:28 ephemer tor[1352]: Feb 08 15:06:28.653 [err] Reading
 config failed--see warnings above.
 Feb 08 15:06:28 ephemer systemd[1]: tor at default.service: Main process
 exited, code=exited, status=1/FAILURE
 -- Subject: Unit tor at default.service has failed
 -- Unit tor at default.service has failed.
 Feb 08 15:06:28 ephemer systemd[1]: tor at default.service: Unit entered
 failed state.
 Feb 08 15:06:28 ephemer systemd[1]: tor at default.service: Failed with
 result 'exit-code'.
 }}}

--

Comment (by sjmurdoch):

 I've updated the description to note that you need to copy the unit files
 out of /lib/systemd/system/ to /etc/systemd/system/ because otherwise
 upgrading Tor will overwrite your changes.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25182#comment:9>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list