ttdnsd has concurrency issues
This is with ttdnsd
0.7-1~squeeze
(i386
) from deb.torproject.org
, invoked with:
ttdnsd -P /var/lib/ttdnsd/pid -f /etc/ttdnsd.conf -b 127.0.0.2 -p 53
Short story:
- Concurrent DNS requests with a non-working DNS server causes
ttdnsd
to crash. - Concurrent DNS requests with a working DNS server causes no crash, but all requests fail.
Long story:
ttdnsd
crashes reliably when it gets two (or more) concurrent (and distinct) DNS request, e.g:
host torproject.org 127.0.0.2 &
host boum.org 127.0.0.2 &
Running ttdnsd with the -c
(no chroot) option seems to prevent the crash, but no circuits are built and nothing is resolved, so ttdnsd
is still useless.
It seems this crash only occurs when ttdnsd
is configured to use a DNS server that blocks the Tor network (it seems like Google's DNS (8.8.8.8
) does this currently). Switching to e.g. OpenDNS (208.67.222.222
) prevents the crash, but...
When using OpenDNS, running the above two commands fails with timeout errors for both requests even though a circuit is built. It seems ttdnsd
can only handle one request at a time; if a request is made while it handles another, both fails.
All this can be reproduced in Tails 0.10.2, but if you wanna try that, first see our ticket about this issue.