I found something!

I found something concerning my Jigsaw problem where there are no free
SockClients left. A summeriziation of the Jigsaw ServerSocket implementation
lead to the following code:

try {

  // SocketClientFactory #547
  ServerSocket s = new ServerSocket(7070);

  // httpd #1382, 1383
  Socket as = s.accept();
  as.setTcpNoDelay(true);

  // SocketClient #114
  InputStream is = as.getInputStream();

  // MimeParser #177
  int i = is.read();

} catch (Exception ex) {
  System.out.println(ex.toString());
}

If now a browser connects to Jigsaw a new Socket is created. Then, after
some processing Jigsaw tries to read the first request. But if in the
meantime the browser was killed, or the network connection was lost due to
an error (often if you are using a modem) Jigsaw is anable to read a request
and therefore waits at line 177 in MimeParser.java forever.

You can check this by simply opening a telnet connection to Jigsaw:port
without sending any characters. The connection stays at least for 15 hours
(I checked it). Because the RequestTimeout is set not until a request has
been read (in ClientJava line 372 method processRequest) the request timeout
handling does not affect this problem.

I don't know if it was your intension, but you solved this problem in
Jigsaw1.0beta2. You added some debugging code to method bind in class
SocketClient:

 try {
     socket.setSoTimeout(300000); // FIXME for debugging only
 } catch (SocketException ex) {
     ex.printStackTrace();
 }

But this code causes the MimeParser in line 177 (  int i = is.read();) just
to wait until the Socket timeout has reached (5 min) and then correctly
throwing an IOException which closes the Socket and frees the SocketClient.

I tried to connect to Jigsaw1.0beta2 over a telnet connection again without
sending any characters. And after about 5 minutes "Connection closed by
foreign host." appeared.

Now everything should be O.K.!!!



Regards Wolfgang





--
Dipl.-Ing. Wolfgang Platzer
Technische Universitaet Graz - University of Technology Graz
Institut für Angewandte Informationsverarbeitung
und Kommunikationstechnologien
Klosterwiesgasse 32/I, A-8010 Graz,
Tel: ++43 316 873-5527,Fax: ++43 316 873-5520
URL <http://www.iaik.tu-graz.ac.at/index.html>

Received on Friday, 20 February 1998 02:26:18 UTC