One more attempt: stuck processes
simon.matter at invoca.ch
Thu Nov 15 13:25:19 EST 2007
> --On 15. November 2007 18:14:05 +0100 Alain Spineux <aspineux at gmail.com>
>>> # strace -p 25038
>>> Process 25038 attached - interrupt to quit
>>> read(0, <unfinished ...>
>> Do you know what is 0, if it was a socket it should timeout, isn't it ?
> It should, I guess, but it doesn't.
>># ls -l /proc/25038/fd
>> should answer the question
> I did not know that. Usually I just use lsof. Interestingly, there's this:
> # ls -l /proc/25038/fd
> insgesamt 0
> lrwx------ 1 cyrus mail 64 15. Nov 18:15 0 ->
> It's blinking red, which normally means a broken link. I'm not sure how
The file 0 is a symbolic symlink which doesn't really point to a file,
that's why the shell shows it blinking. Everything okay here.
> reliable that is in this case. Anyway, lsof reports:
> pop3d 25038 cyrus 0u IPv4 -64802663 TCP
> It *thinks* the connections is still open. So does netstat:
> # LANG=C netstat -a|grep p50865F5D
> tcp 0 0 cyrus.rrz.uni-koeln.d:pop3s
> But obviously that connection is dead. I don't know what conclusions to
> draw from that ...
Just two ideas come to mind:
1) Since it only happens on dialup connections, could it be that the
dialin router at the providers end sends TCP/RST when a client hangs up
and those packets are filtered somewhere, maybe on your firewall?
2) Could it be that SO_LINGER should be used as socket option in
service_create() in master/master.c.
If it's complete nonsense, ignore it.
More information about the Info-cyrus