Re: One more attempt: stuck processes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



--On 15. November 2007 19:25:19 +0100 Simon Matter <simon.matter@xxxxxxxxx> wrote:

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.

Thanks. That's what I thought, but I wasn't sure.

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?

OK, let's run with that one.

a) We don't really have a firewall, we only use ACLs on the Cisco routers. You can't even filter TCP/RST there.

b) Even *if* a TCP/RST had been dropped, lost or whatever, the server *still* should timeout eventually!

2) Could it be that SO_LINGER should be used as socket option in
service_create() in master/master.c.

I didn't remember that option, so I just read up on it. It seems as though SO_LINGER is very dependent on implementation. If I get your intention correctly SO_LINGER would have to be set with l_onoff set to non-zero and l_linger to zero, right? So close() would return immediately? That might make sense if the stack trace showed a call to close(). But if I understand the code correctly, close() isn't called at all. The socket is closed as a result of a call to exit(). And that defeats all use of SO_LINGER:

"When the socket is closed as part of exit(2), it always lingers in the background."

If it's complete nonsense, ignore it.

I wouldn't know :-)
--
    .:.Sebastian Hagedorn - RZKR-R1 (Gebäude 52), Zimmer 18.:.
Zentrum für angewandte Informatik - Universitätsweiter Service RRZK
.:.Universität zu Köln / Cologne University - ✆ +49-221-478-5587.:.
                  .:.:.:.Skype: shagedorn.:.:.:.

Attachment: pgpykELDvH4hu.pgp
Description: PGP signature

----
Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux