thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From BCG <>
Subject Re: Socket Timeout
Date Sat, 05 Dec 2015 20:39:51 GMT
On 12/05/2015 02:55 PM, Bryan Buchanan wrote:
> 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: Connection timed out
>      at Method)
>      at
>      at
>      at
>      at
>      at
> org.apache.thrift.transport.TIOStreamTransport.flush(
> 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.
I wonder if it could just be something that your customer has set up in 
their network infrastructure... you might want to try tunneling the 
connection using SSH with keep-alive or something like that to see if it 
makes the problem go away.  It might not be a permanent solution but at 
least it is something you could try quickly that might isolate the root 

Hope that helps


View raw message