Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!wuarchive!sdd.hp.com!ucsd!ucbvax!BNR.CA!PWW From: PWW@BNR.CA (Peter Whittaker, P.W.) Newsgroups: comp.protocols.iso.dev-environ Subject: Connections that are never released Message-ID: <90Nov13.104454est.57576@ugw.utcs.utoronto.ca> Date: 13 Nov 90 15:05:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: inet Organization: The Internet Lines: 31 Hello, I'm posting this note to both the QUIPU and ISODE discussion groups in the hope of finding someone who has sufficient familiarity with the lower levels of ISODE to tell us why our DSA (Layer 7 application, directory server) and its network connection behave the way they do.... The problem is that because of certain memory leaks in our DSA (not sure if these are due to QUIPU, or to our own 'enhancements', but we're workin' on it :->) we kill and restart our DSA every morning. Invariably there is a DUA (directory client) connected to the DSA (we've been using the QUIPU DUAs, and building our own - neat graphical beasts, etc...) so the TCP port the DSA was using is never released. A quick netstat -n reveals that the address the DSA would like to use is in a FIN_WAIT_2, while the DUA is in CLOSE_WAIT. The connection is not released until the DUA unbinds or until the DUA is killed, so the DSA cannot come up, as its desired port is in use. The Layer four routines for servers set SO_KEEPALIVE, but that shouldn't enable the socket to stay up even though its calling process is dead, should it? Anyone have any ideas, clues (better yet: fixes!! :->), or pointers to places to look? Thanks, Peter Whittaker [~~~~~~~~~~~~~~~~~~~~~~~~~~] Open Systems Integration pww@bnr.ca [ ] Bell Northern Research Ph: +1 613 765 2064 [ ] P.O. Box 3511, Station C FAX:+1 613 763 3283 [__________________________] Ottawa, Ontario, K1Y 4H7