DNSBL helper not answering

Vernon Schryver vjs@calcite.rhyolite.com
Fri Nov 24 15:56:24 UTC 2006

> From: Daniel Gehriger 

> You may be right... ps -eH yields:
>   5321 ?        00:00:00   dccd
>   5445 ?        00:00:00   dccifd
> ...

On many Linux flavors, `ps` presents threads of a process as if they
were independent processes.  Each mail message processed by dccifd uses
a thread.

The DNSBL helper processes used by dccifd are processes instead of
threads, because most resolver libraries are not thread safe.  It would
not do to have dccifd or dccm stop processing all mail while one mail
message is being checked against DNS blacklists.  Because the low
performance DCC interface for .forward or procmail, dccproc, handles
one message and exits, it does not need a separate DNSBL helper process.

> > Does your resolver library not have _res.retry and _res.retrans like the
> > BIND resolver library?
> > Those log lines suggest a total DNS timeout of at least 1:23.  Unless the
> > per-URL and per-message timeouts are at least as long, there will be problems.

> #undef HAVE__RES
> #undef HAVE_RES_INIT

Those lines shows that ./configure decided _res and the other BIND
resolver hooks are absent.  Is the BIND resolver available with -lresolv?
Do those lines change if you convince ./configure to use -lresolv with
    LIB=-lresolv ./configure ...
    setenv LIB -lresolv; ./configure ...
If so, I'll try to figure out how to make ./configure add -lresolv for
Linux systems that have that library.

Separately, does grossly setting inflating the timeouts seem to make the
problem go away?
  -Bset:msg-secs=100  -Bset:URL-secs=91
(I vaguely recall something about very old default resolver timeouts
of 90 seconds.)

Version 1.3.46 will have a kludge or two to help deal with resolver
libraries that do not support the BIND _res hooks for limiting DNS
timeouts, but the best solution is to somehow limit the DNS timeouts.

Vernon Schryver    vjs@rhyolite.com

More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.