Hi,
I have a thrift java server and a ruby client. after making few successful
calls to the server using the same request, the client would hang on a call
all of a sudden. netstat shows that the connection is established.
when i do jstack on the server, i see this -
"Thread-6" prio=10 tid=0x00007f1678373000 nid=0x657f runnable
[0x00007f166e049000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:146)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
- locked <0x00000000c02b8710> (a java.io.BufferedInputStream)
at
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:127)
at
org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
at
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
at
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
at
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
at
com.akanksh.information.AkStats$Processor.process(AkStats.java:424)
at
org.apache.thrift.server.TSimpleServer.serve(TSimpleServer.java:116)
at mypackage.myAPIServer.apiServer(apiServer.java:168)
at mypackage.apiServer$1.run(apiServer.java:155)
at java.lang.Thread.run(Thread.java:636)
i am not sure if its a server problem where it is not reading all the data
that has been sent by the client or if the client hasn't sent the complete
request yet. this is a very simple setup - single threaded java thrift
server and no other load on the system.
ill really appreciate if somebody could help.
thanks
vinod