The symptom of this problem is qpsmtpd-async just hangs forever in the HELO part of SMTP transaction.
After putting reams of debug code in ParaDNS.pm + qpsmtpd, the fix I came up with is a minor change to... lib/Qpsmtpd/PollServer.pm In start_conversation() no nameserver list specified. I have servers where qpsmtpd-async has been running for years + have no clue how this code could ever work. My is to add a list of nameservers to query... my @nameservers = qw/127.0.0.1 8.8.8.8 8.8.4.4/; Then add to the ParaDNS->new() constructor... nameservers => \@nameservers Now everything works like a charm. Debug shows... 00/2 [1394] dns lookup: Nameservers set to: 127.0.0.1 8.8.8.8 8.8.4.4 100/2 [1394] dns lookup: Using override nameserver 127.0.0.1:53 100/2 [1394] dns lookup: Using override nameserver 8.8.8.8:53 100/2 [1394] dns lookup: Using override nameserver 8.8.4.4:53 100/2 [1394] dns lookup: Trying to resolve A: 127.0.0.1 100/2 [1394] dns lookup: NS Query: 127.0.0.1 (39546) 100/1 [1394] dns lookup: Query mismatch for id: 39546. 127.0.0.1 ne 1.0.0.127.in-addr.arpa DNS failure looking for 127.0.0.1 after 0 secs (looked for 1, got 0) Last line still seems bogus to me + at least qpsmtpd-async delivers mail now. If anyone has an idea of how ParaDNS comes up with a nameserver list, when none is specified... let me know. Thanks.