[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Milter hangs, revisited
From: |
Terry Kennedy |
Subject: |
Re: Milter hangs, revisited |
Date: |
Wed, 13 Nov 2002 01:30:11 -0500 (EST) |
> > Yup, no invocation of spamc.
>
> Ok, maybe the other end isn't attached to spamc :) Do that "lsof |
> grep" bit and see what process is on the other end of the pipe.
I think we're past this. It looks like something in the process was
getting messed up by the closeall(). I've seen incredibly weird things
happen in the thread environment.
> > I'm a bit nervous running with the closeall() commented out, though.
> >
> > Any ideas on why this is happening and a better workaround?
>
> Actually, try this. Replace the close(fd++) call in closeall() with
> fcntl(fd++, F_SETFD, FD_CLOEXEC), which should end up doing the same
> thing in a different way. Hopefully the process won't just end up
> hanging in execvp() :)
That seems to be working. I'll run this in production for a day or so
and see what happens.
> Makes me want to build a non-threaded milter API, it does.
Really. I actually looked at a bunch of the "fake SMTP server on port 25
which washes mail through spamd and then gives it to the real mailer" pack-
ages, but I didn't want to give up the stuff I'm doing with early-reject in
sendmail.
Fortunately, it looks like the milter is now working as desired.
Thanks!
Terry