Hi all,

As of version 0.90, clamd daemonizes before it loads the databases,
creates the socket and begins accepting connections. Unfortunately, as
the databases grow, clamd can take quite a while to initialise (I've
seen upwards of 65 seconds on some slower or loaded systems). This
causes problems for programs that rely on clamd being ready to accept
connections. In order to ensure that clamd is fully initialised, it must
be started and then one must continually check for the presence of the
clamd socket file, which is not a particularly efficient or reliable
solution. In 0.8x, this was not an issue because clamd did not daemonise
until after database initialisation. Thus, one could simply wait for
clamd to return (due to forking) and assume it was fully initialised.

The issue is also described here:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=427154
although a different solution is proposed.

I have patched 0.90.3 to daemonise just before entering the socket
accept loop. I am posting here rather than opening a bug in Bugzilla
because I am uncertain as to whether this is considered a bug. This
behaviour was probably changed for a reason and I am curious as to the
reason. I will file a bug subject to responses from developers.

Thanks for such a wonderful project.

Jamie


Scanned by the NetBox from NetBox Blue
(http://netboxblue.com/)

_______________________________________________
http://lurker.clamav.net/list/clamav-devel.html
Please submit your patches to our Bugzilla: http://bugs.clamav.net

Reply via email to