14 messages in net.sourceforge.lists.courier-users[courier-users] maildrop xfilter i/o ...
FromSent OnAttachments
ably...@epix.netApr 22, 2002 8:39 pm 
Andy BlylerApr 22, 2002 9:04 pm 
Michael CarmackApr 22, 2002 9:25 pm 
Andy BlylerApr 22, 2002 9:34 pm 
Iustin PopApr 22, 2002 9:50 pm 
Iustin PopApr 22, 2002 10:09 pm 
Andy BlylerApr 22, 2002 10:13 pm 
Iustin PopApr 22, 2002 10:18 pm 
Bill CampbellApr 22, 2002 10:27 pm 
ed...@edginton.netApr 24, 2002 3:01 pm 
Andy BlylerApr 24, 2002 5:52 pm 
Charlie WattsApr 24, 2002 6:37 pm 
Sam VarshavchikApr 24, 2002 6:57 pm 
Andy BlylerApr 24, 2002 7:14 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:[courier-users] maildrop xfilter i/o bug?Actions...
From:Charlie Watts (cewa@frontier.net)
Date:Apr 24, 2002 6:37:42 pm
List:net.sourceforge.lists.courier-users

I think I'm seeing a bug, and can't -quite- narrow it down.

I have a message that seems to break the combination of maildrop + an xfilter. The vast majority of messages work just fine, however.

The message is at http://www.frontier.net/~cewatts/breaks-maildrop.txt It is basically some filler text and then an enormously-long line.

If I have no .mailfilter, the file is delivered correctly 100% of the time.

If I have a .mailfilter that is as simple as: xfilter "/bin/cat"

it -occasionally- works, but usually times out with: maildrop: Timeout quota exceeded.

If I try to run maildrop under ktrace or strace, it always works. (Damn that Heisenberg!)

If I strace maildrop after it is started (and hanging), I see this:

(done simultaneously from different windows) 79855 is the maildrop 79856 is the "sh -c /bin/cat" 79857 is the cat

$ strace -f -p 79855 write(5, "this is a really enormously long"..., 8856

**** and here it hangs out for a few minutes ****

--- SIGALRM (Alarm clock) --- --- SIGALRM (Alarm clock) --- --- SIGALRM (Alarm clock) --- <... write resumed> ) = 8856 setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0, 0}, it_value={0, 0}}) = 0 write(2, "maildrop: Timeout quota exceeded"..., 34) = 34 exit(75) = ?

$ strace -f -p 79856 wait4(-1, 1

**** hangs ****

<unfinished ...> --- SIGCHLD (Child exited) --- <... wait4 resumed> [WIFSIGNALED(s) && WTERMSIG(s) == SIGPIPE], 0x2, NULL) = 79857 exit(141) = ?

$ strace -f -p 79857 write(1, "From: cewa@frontier.net\nSubje"..., 9308

**** hangs ****

read(0, "this is a really enormously long"..., 16384) = 8856 write(1, "this is a really enormously long"..., 8856 <unfinished ...> --- SIGPIPE (Broken pipe) --- --- SIGPIPE (Broken pipe) ---

I would appreciate it if somebody could verify this behaviour. I'm particularly curious if it is a FreeBSD interaction.

This behaviour is the same on both FreeBSD 4.3-RELEASE and 4.5-STABLE. Also the same on the maildrop 1.3.8 and 1.3.8-20020418.

Maildrop built as:

LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include ./configure \ --enable-trusted-users=vmail --enable-smallmsg=524288 --enable-syslog=1 \ --enable-maildirquota --enable-userdb --with-userdb=/etc/userdb \ --with-db=db