Die more helpfully if Schedulers option isn't compatible with platform
KIST isn't supported on OS X. The user is being dumb and setting Schedulers
to just KIST, so we can't fallback to KISTLite or even Vanilla. Therefore select_scheduler()
doesn't set the_scheduler
and thus the_scheduler->init()
doesn't work in set_scheduler()
.
This isn't a problem during a HUP because we already have a scheduler. select_scheduler()
doesn't change anything and we keep on running with whatever scheduler we were using before.
cranium:tor mtraudt$ cat torrc
DataDirectory data
PidFile data/tor.pid
Socks5Proxy 127.0.0.1:2343
Schedulers KIST
Log [sched]info [~sched]notice stdout
cranium:tor mtraudt$ ./src/or/tor -f torrc
Sep 19 09:33:26.370 [notice] Tor 0.3.2.1-alpha-dev (git-472858d629252ae8) running on Darwin with Libevent 2.1.8-stable, OpenSSL 1.0.2l, Zlib 1.2.5, Liblzma 5.2.3, and Libzstd N/A.
Sep 19 09:33:26.371 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Sep 19 09:33:26.371 [notice] This version is not a stable Tor release. Expect more bugs than usual.
Sep 19 09:33:26.371 [notice] Read configuration file "/private/tmp/tor/torrc".
Sep 19 09:33:26.373 [warn] Path for DataDirectory (data) is relative and will resolve to /private/tmp/tor/data. Is this what you wanted?
Sep 19 09:33:26.374 [warn] Path for PidFile (data/tor.pid) is relative and will resolve to /private/tmp/tor/data/tor.pid. Is this what you wanted?
============================================================ T= 1505828006
Tor 0.3.2.1-alpha-dev (git-472858d629252ae8) died: Caught signal 11
0 tor 0x000000010a4e38d9 crash_handler + 57
1 libsystem_platform.dylib 0x00007fff9307d52a _sigtramp + 26
2 tor 0x000000010a4d2a84 set_scheduler + 164
3 tor 0x000000010a4d34eb scheduler_init + 347
4 tor 0x000000010a346115 options_act_reversible + 453
5 tor 0x000000010a345c24 set_options + 68
6 tor 0x000000010a350991 options_init_from_string + 1697
7 tor 0x000000010a34fa27 options_init_from_torrc + 1399
8 tor 0x000000010a42f833 tor_init + 1523
9 tor 0x000000010a430147 tor_main + 103
10 tor 0x000000010a2fb350 main + 48
11 libdyld.dylib 0x00007fff9e1765ad start + 1
Abort trap: 6