Results 1 to 2 of 2
Enjoy an ad free experience by logging in. Not a member yet? Register.
- Join Date
- Dec 2010
SocketException : Connection Reset
I am currently working on a Server/Client application on a cluster
I am running about 100 clients in parallel and one server (32 clients per node with 8 processor => 4 clients per processor) . The server is linked to all the clients via Sockets.
After about 55 iteration (about 20 mins), i have a client dying and i receive the following error:
Client 126 java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream. java:16
at java.net.SocketInputStream.read(SocketInputStream. java:182)
at java.io.ObjectInputStream$PeekInputStream.peek(Obj ectInputStream.java:2249)
at java.io.ObjectInputStream$BlockDataInputStream.pee k(ObjectInputStream.java:2542)
at java.io.ObjectInputStream$BlockDataInputStream.pee kByte(ObjectInputStream.java:2552)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1297)
at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:351)
the Server.java.789 is : ServerThread.sockIn.readObject();
Do you have any idea what could create the connection reset ? The other clients are still running. It seems that the client socket is creating an exception when we try to read a file which actually does not exist.
My main question is what are the method to identify the problem related to this specific socket (note that I am working on a cluster, hence accessing the node via ssh connection and without having admin access).
I dont understand why suddenly one client would die. It was working well during 20 minutes and suddenly one die ? Do you have any idea and any advice on how to identify the reset of this Socket disconnection ?
I though about using wireshark but the fact that the application is running on a cluster make it difficult to analyze,sniff the packets remotely. I dont know if i can do it remotely.
Do you have any idea how I could debug this problem?
- Join Date
- Nov 2006
- Harrisburg, PA, USA
Well first of all, I am not Java expert. But looking at the scenario, I suspect the dying client is not sending KEEP ALIVE TCP packets to server indicating server to keep the connection active. After certain amount of time (This is preconfigured timeout in TCP IP stack), server will reset the connection by sending RST TCP packets.
I hope this will help you.