thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bryan Buchanan <bry...@webbtide.com>
Subject Socket Timeout
Date Sat, 05 Dec 2015 19:55:25 GMT
I have JavaFX app that is behaving differently on computers in my office
and at a customer site.

I've created a simple test app which has a TextField and a Button.

When the app starts, I do:

Transport transport = new TSocket(host, port);
TProtocol protocol = new TBinaryProtocol(transport);
TestApplication.Client client = new TestApplication.Client(protocol);

The app just sits there waiting for you to enter some text. When you click
the button, an RPC call is made to a remote server which reverses the
string, sends it back and it's re-displayed in the text field.

In my office, I can leave this app running all day, enter some text, click
the button, it calls the server and all is well. At the customer site,
using exactly the same version of Linux and JDK and the same remote server,
if you leave the app running for about 1/2 an hour then enter some text and
click the button, one of two things happen.

1. it aborts with a Connection timed out error:

Caused by: java.net.SocketException: Connection timed out
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
    at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
    at
org.apache.thrift.transport.TIOStreamTransport.flush(TIOStreamTransport.java:159)

which is fine, although I don't know why (and it's what I'm trying to track
down).

or

2. the app just hangs. When you click the button, the app freezes. In the
TestApplication.Client class the last thing I see is the message "in
reverse" below:

  public String reverse(String message) throws BJBException,
org.apache.thrift.TException
    {
      System.err.println("in reverse");
      send_reverse(message);
      System.err.println("sent message, wait for reply");
      return recv_reverse();
    }

then after a bit, the Linux Window Manager pops up and says the app is
unresponsive and do you want to kill it. It's obviously in some tight loop
somewhere in the code in libthrift-0.9.3.jar.

I'm going to create a simple "C" language client to see if the same
behaviour occurs, but I'm wondering if anyone has any hints at what I
should be looking for or changing ?

Thanks.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message