Skip to content
GitLab
  • Explore
  • Sign in
  • The Tor Project
  • Core
  • TorTor
  • Issues
  • #40015

Tor triggers assert when run with "--key-expiration sign" but no ORPort

When I run "src/app/tor -f /tmp/empty --key-expiration sign", I get this backtrace:

Jun 28 19:59:21.805 [err] tor_assertion_failed_(): Bug: src/feature/relay/routerkeys.c:560: log_master_signing_key_cert_expiration: Assertion server_identity_key_is_set() failed; aborting. (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug: Tor 0.4.5.0-alpha-dev (git-5336ac26693cdba4): Assertion server_identity_key_is_set() failed in log_master_signing_key_cert_expiration at src/feature/relay/routerkeys.c:560: . Stack trace: (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /home/arma/torgit/tor/src/app/tor(log_backtrace_impl+0x56) [0x555555770436] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /home/arma/torgit/tor/src/app/tor(tor_assertion_failed_+0x147) [0x55555576b497] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /home/arma/torgit/tor/src/app/tor(log_cert_expiration+0x18a) [0x5555556c28aa] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /home/arma/torgit/tor/src/app/tor(tor_run_main+0x109a) [0x5555555b58ca] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /home/arma/torgit/tor/src/app/tor(tor_main+0x3a) [0x5555555b30ba] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /home/arma/torgit/tor/src/app/tor(main+0x19) [0x5555555b2c79] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb) [0x7ffff745409b] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)
Jun 28 19:59:21.806 [err] Bug:     /home/arma/torgit/tor/src/app/tor(_start+0x2a) [0x5555555b2cca] (on Tor 0.4.5.0-alpha-dev 5336ac26693cdba4)

Here it is in gdb:

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) where
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7452535 in __GI_abort () at abort.c:79
#2  0x0000555555770b0e in tor_raw_abort_ () at src/lib/err/torerr.c:225
#3  0x000055555576b73e in tor_abort_ () at src/lib/log/util_bug.c:174
#4  0x00005555556c28af in log_master_signing_key_cert_expiration (
    options=0x5555558bb610) at src/feature/relay/routerkeys.c:560
#5  log_cert_expiration () at src/feature/relay/routerkeys.c:599
#6  0x00005555555b58ca in tor_run_main (tor_cfg=tor_cfg@entry=0x55555588f260)
    at src/app/main/main.c:1311
#7  0x00005555555b30ba in tor_main (argc=3, argv=0x7fffffffdc88)
    at src/feature/api/tor_api.c:164
#8  0x00005555555b2c79 in main (argc=<optimized out>, argv=<optimized out>)
    at src/app/main/tor_main.c:32

After some debugging, if I set "ORPort 9001" in my torrc or on my command-line, then Tor behaves as expected.

For a minimal fix, I'd want it to not crash, and instead tell me I need to set an ORPort.

For a more thorough fix, I'd want it to work even when I don't set an ORPort (since after all, I am running Tor to examine my local file and tell me about it, not to be a relay).

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking