I'm a small ISP running Redhat Linux 6.2. I've had a longstanding problem 
when if a user is downloading their email via modem and then the modem
drops out before then dowload is finished, then a popper process is 
left running. These popper processes could stay around for two hours or more.
When the user logs back in to tries and get there email again they get
a POP Lock Busy error message. This confuses and frustrates them no end.

I'm running Linux Kernel 2.4.0 and qpopper 4.0.3. I've done a bit of
debugging and found that the qpopper was waiting on the fflush call 
in pop_write_flush function in file pop_send.c. I made a quick hack
to see if I could fix the problem. I put an alarm before the 
fflush and reset it after the fflush. This fix seems to work quite nicely.

I've got a couple of questions which come from my testing:

1) Is Linux unique in being able to hang on an fflush where
   the guy on the other end has been dropped out?

2) Has this situation been tested on other Unixes? Do they
   have this problem of hanging as well.

3) How does Linux determine how long does the fflush call
   wait for when the other end has disconnected?

If its agreed that my fix is a reasonable one I will be happy to
write up a full patch to fix this problem.

Regards.  Paul  ([EMAIL PROTECTED])


Reply via email to