- From: Yves Lafon <ylafon@w3.org>
- Date: Wed, 3 Sep 1997 11:23:42 +0200 (MET DST)
- To: Frederic Crozat ISIMA <crozat@opgc16.univ-bpclermont.fr>
- cc: www-jigsaw@w3.org
On Tue, 2 Sep 1997, Frederic Crozat ISIMA wrote: > I still have some problems with beta1 (I think those problems were > present in alpha5) concerning socket : > > I encounter very often "socket Exception" like this one in the errlog > client-10(socket-clients:10): caught ClientException: > [w3c.jigsaw.http.ClientException] Socket closed > > and with beta 1, it occurs at > java.net.SocketException: Socket closed > at java.net.PlainSocketImpl.setOption(PlainSocketImpl.java:169) > at java.net.Socket.setTcpNoDelay(Socket.java:311) > at w3c.jigsaw.http.httpd.run(httpd.java) > at java.lang.Thread.run(Thread.java) > I've tried to comment the setTcpDelay but the errlog entry appears > sometimes. I was thinking it could be related to Netscape 3.0 but it > also have this problem with a java application wich uses Jigsaw client > side API (and also with Jigadm). When this error is encountered, the > socket is supposed to be closed but if I check with netstat, it's still > open ! I have never seen this error before. It seems that Jigsaw hasn't been notified of the socket close. In fact you said that a netstat was showing the socket as still active, so it looks like a jdk bug more than a Jigsaw bug. Anyway, we will inquire on this one! > Another big problem is that when some clients are still connected to > Jigsaw (in a keepalive idleconnection), when I try to stop the server, > it closes its server socket but it doesn't stop itself. I've used the > debug feature of SocketClientFactory to trace the problem and it seems > that Jigsaw make a join() on each client socket after killing them but > it wait on join on client sockets still open (by a keepalive client, > they still appear as open in netstat). > It seems that Jigsaw is waiting for the socket to close themselves > but they don't ! The sockets have a timeout, 2 timeouts in fact. But the shutdown of the server FORCES the shutwodn of the all the clients (first step, close the idling clients, second step after a small wait, kill everything). You can see w3c/jigsaw/http/socket/SocketClientFactory.java killClients There souldn't be any open socket at the end of this method call. Another jdk bug? (It works well on solaris and NT using Sun's jdk 1.1.3). /\ - Yves Lafon - World Wide Web Consortium - /\ / \ Architecture Domain - Jigsaw / \ \/\ / \ / \ http://www.w3.org/People/Lafon - ylafon@w3.org
Received on Wednesday, 3 September 1997 05:23:48 UTC