On Thu, 25 Feb 2010, 22:14 +1100, John Marshall wrote: > Another thing I did was to patch the sendmail build config on another > one of the servers, and rebuild, so that sendmail's sleep() would simply > call FreeBSD's nanosleep(2). I have asked on comp.mail.sendmail if > anyone knows why the sendmail build only enbles use of nanosleep on > Solaris.
After checking with jhb@ re appropriate value of __FreeBSD_version for the test, I have submitted a build configuration patch to the sendmail folks so that a sendmail build on FreeBSD >= 300000 will use nanosleep(). The patch has been accepted by sendmail and is attached for reference. > SERVER 1 > - FreeBSD 8.0-RELEASE-p2 > - Sendmail 8.14.4 (modified so that sleep() uses nanosleep(2)) > > SERVER 2 > - FreeBSD 8.0-RELEASE-p2 > - Sendmail 8.14.4 > > SERVER 3 > - FreeBSD 8-STABLE > - Sendmail 8.14.4 > > ...and then watch sendmail on all three. One week has elapsed and no queue runners have succumbed to excessive drowsiness. -- John Marshall
--- include/sm/conf.h.orig 2009-06-17 09:41:32.000000000 +1000 +++ include/sm/conf.h 2010-02-27 09:31:33.000000000 +1100 @@ -1014,6 +1014,9 @@ # if __FreeBSD_version >= 222000 /* 2.2.2-release and later */ # define HASSETUSERCONTEXT 1 /* BSDI-style login classes */ # endif /* __FreeBSD_version >= 222000 */ +# if __FreeBSD_version >= 300000 /* 3.0.0-release and later */ +# define HAVE_NANOSLEEP 1 /* has nanosleep(2) */ +# endif /* __FreeBSD_version >= 300000 */ # if __FreeBSD_version >= 330000 /* 3.3.0-release and later */ # ifndef SMRSH_CMDDIR # define SMRSH_CMDDIR "/usr/libexec/sm.bin"
pgpnFwvBhoqpC.pgp
Description: PGP signature