Opened 8 years ago

Closed 18 months ago

#5654 closed defect (wontfix)

ttdnsd has concurrency issues

Reported by: anonym Owned by: ioerror
Priority: Medium Milestone:
Component: Archived/ttdnsd Version: Tor: unspecified
Severity: Normal Keywords: archived-closed-2018-07-04
Cc: intrigeri, anonym Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

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.

Child Tickets

Change History (4)

comment:1 Changed 5 years ago by intrigeri

Cc: intrigeri added; tails@… removed

comment:2 Changed 5 years ago by intrigeri

Cc: anonym added

comment:3 Changed 2 years ago by teor

Severity: Normal

Set all open tickets without a severity to "Normal"

comment:4 Changed 18 months ago by teor

Keywords: archived-closed-2018-07-04 added
Resolution: wontfix
Status: newclosed

Close all tickets in archived components

Note: See TracTickets for help on using tickets.