One more attempt: stuck processes

Simon Matter 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>
> wrote:
>
>>> # 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 ->
> socket:[4230164633]
> ...
>
> 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
> cyrus.rrz.uni-koeln.de:pop3s->p50865F5D.dip.t-dialin.net:1064
> (ESTABLISHED)
>
> 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
> p50865F5D.dip.t-dialin:1064
> ESTABLISHED
>
> 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.

Simon



More information about the Info-cyrus mailing list