-----BEGIN PGP SIGNED MESSAGE-----

> At 12:28 PM +0100 3/16/01, Oliver Fleischmann wrote:

> >  Mar 16 09:35:45 chlothar popper[24129]: ba3760 at
> >  p3E9E2005.dip.t-dialin.net (62.158.32.5): -ERR [IN-USE]
> >  /var/spool/mail/.ba3760.pop lock busy!  Is another session active? (11)
> >
> >  Now he can't log in any more:

> >  The qpopper-process (PID 24123) was still laying around at this time,
> >  as well as the .ba3760.pop - lock-file. Killing it with -HUP does nothing,
> >  I need to use -TERM, which removes the process from the table, but
> >  doesn't clean up the lock file. So I have to clean up myself.
> >
> >  We are experiencing this every now and then, and only with some
> >  users. But those few users trigger the problem almost every day. At
> >  least one of them used Microsoft Outlook (don't know which version).
> >
> >  Do I need to go for another POP3 server software? Is there still any
> >  ongoing development for the free version of qpopper?

> Next time it happens, can you get a trace of system calls on the hung
> stack?  This is done by running the system trace facility.  This
> differs depending on the flavor of Unix.  On Solaris it is truss(1);
> on Linux it is strace(1).  Other platforms may have one of these or
> something else.  Usually a 'man -k trace' shows it.  For example, on
> Solaris, if the hung stack is pid 1234, use 'truss -p 1234 -o
> truss-out'

I did strace on a hanging qpopper-process in an very early state (still 
running as user root, so the user has not authenticated yet):

read(0, 0xbfffd68c, 1)                  = ? ERESTARTSYS (To be restarted)
- --- SIGHUP (Hangup) ---
rt_sigaction(SIGHUP, {0x80505a0, [], SA_RESTART|0x4000000}, {0x80505a0, [], 
SA_RESTART|0x4000000}, 8) = 0
rt_sigaction(SIGPIPE, {0x80505a0, [], SA_RESTART|0x4000000}, {0x80505a0, [], 
SA_RESTART|0x4000000}, 8) = 0
sigreturn()                             = ? (mask now [ALRM])
read(0, 0xbfffd68c, 1)                  = ? ERESTARTSYS (To be restarted)
- --- SIGHUP (Hangup) ---
rt_sigaction(SIGHUP, {0x80505a0, [], SA_RESTART|0x4000000}, {0x80505a0, [], 
SA_RESTART|0x4000000}, 8) = 0
rt_sigaction(SIGPIPE, {0x80505a0, [], SA_RESTART|0x4000000}, {0x80505a0, [], 
SA_RESTART|0x4000000}, 8) = 0
sigreturn()                             = ? (mask now [ALRM])
read(0, 0xbfffd68c, 1)                  = ? ERESTARTSYS (To be restarted)
- --- SIGTERM (Terminated) ---

If I just do strace on the process, it sits in "read(0, " forever. I then 
did a "kill -HUP" for two times an finally a "kill" on the process while 
running strace.

Processes hanging in a later state show the same strace output, as far as I 
remember.

> It would also be helpful to enable debug tracing in Qpopper.
> 
> To enable tracing in Qpopper:
> 
> 1.  Do a 'make clean'
> 2.  Re-run ./configure, adding '--enable-debugging'.
> 3.  Edit the inetd.conf line for Qpopper, adding '-d' or '-t tracefile'.
> 4.  Send inetd a HUP signal.
> 
> This causes detailed tracing to be written to the syslog (if you used
> '-d') or to the file specified as 'tracefile'.

I have a qpopper with debug compiled in running on a different port number 
and try to persuade the critical users to use that port.

Thank you very much for your help!


Regards
Oliver



-----BEGIN PGP SIGNATURE-----
Version: PGP 6.5.2 -- QDPGP 2.61a

iQCVAwUBOrNMN+EFCAtT9RchAQH1ogP9GRQDlByxWilEYdlTnyG+Fsay9T0Z94tT
NV5H/sfCuZVluwKUe0y1D7tSn+7yAj/HmynigW+OEvwGCARm6jox8cuHJ88awv0s
30VUqtQLFa+vNTK57b34kTej4Fpwz69Hs3i5suGykF8i90zByiYHgTkTyYpiXlWc
JA0i9JSarPU=
=UaR4
-----END PGP SIGNATURE-----

-- 
Oliver Fleischmann                      EMail: [EMAIL PROTECTED]
Bamberg, Germany                                 HamRadio: DL8NEG

Reply via email to