[ 
https://issues.apache.org/jira/browse/THRIFT-5411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17351786#comment-17351786
 ] 

David Mollitor commented on THRIFT-5411:
----------------------------------------

Hello.

 

I don't personally like having the underlying framework swallow errors.  It can 
make troubleshooting very difficult.  However, as the code currently is 
written, this error should be ignored from logging as it is certainly a form of 
"TIMED_OUT" exception.

 

[https://github.com/apache/thrift/blob/63d114de97f8ddb67c1fb33d75ccb91a3b487b92/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java#L276-L293]

 

I have provided a pull request to catch this specific exception and identify it 
appropriately as "TIMED_OUT", however, I would suggest you seek to determine 
the cause of this timeout in your environment.

>  Catch SocketTimeoutException in TIOStreamTransport read
> --------------------------------------------------------
>
>                 Key: THRIFT-5411
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5411
>             Project: Thrift
>          Issue Type: Bug
>          Components: Java - Library
>    Affects Versions: 0.14.1
>            Reporter: Isha
>            Assignee: David Mollitor
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Hi,
> There is an issue in thrift library.
> From thrift version 0.12.0, we see some unwanted logs in our application logs 
> as below:
> 1620367702942[20210507 11:38:22] [TThreadPoolServer$WorkerProcess::run] May 
> 07, 2021 11:38:22 AM org.apache.thrift.server.TThreadPoolServer$WorkerProcess 
> run
> SEVERE: Thrift Error occurred during processing of message.
> org.apache.thrift.transport.TTransportException: 
> java.net.SocketTimeoutException: Read timed out
>  at 
> org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:178)
>  at org.apache.thrift.transport.TTransport.readAll(TTransport.java:109)
>  at 
> org.apache.thrift.transport.layered.TFramedTransport.readFrame(TFramedTransport.java:138)
>  at 
> org.apache.thrift.transport.layered.TFramedTransport.read(TFramedTransport.java:106)
>  at org.apache.thrift.transport.TTransport.readAll(TTransport.java:109)
>  at 
> org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:463)
>  at 
> org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:361)
>  at 
> org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:244)
>  at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
>  at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
> Caused by: java.net.SocketTimeoutException: Read timed out
>  at java.net.SocketInputStream.socketRead0(Native Method)
>  at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
>  at java.net.SocketInputStream.read(SocketInputStream.java:171)
>  at java.net.SocketInputStream.read(SocketInputStream.java:141)
>  at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
>  at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
>  at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
>  at 
> org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:176)
>  ... 12 more
> org.apache.thrift.transport.TTransportException: 
> java.net.SocketTimeoutException: Read timed out
>  at 
> org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:178)
>  at org.apache.thrift.transport.TTransport.readAll(TTransport.java:109)
>  at 
> org.apache.thrift.transport.layered.TFramedTransport.readFrame(TFramedTransport.java:138)
>  at 
> org.apache.thrift.transport.layered.TFramedTransport.read(TFramedTransport.java:106)
>  at org.apache.thrift.transport.TTransport.readAll(TTransport.java:109)
>  at 
> org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:463)
>  at 
> org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:361)
>  at 
> org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:244)
>  at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
>  at 
> org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:248)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
> Caused by: java.net.SocketTimeoutException: Read timed out
>  at java.net.SocketInputStream.socketRead0(Native Method)
>  at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
>  at java.net.SocketInputStream.read(SocketInputStream.java:171)
>  at java.net.SocketInputStream.read(SocketInputStream.java:141)
>  at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
>  at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
>  at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
>  at 
> org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:176)
>  ... 12 more
>  
> The exception is printed from TTheadPoolServer.java class as a non ignorable 
> exception. But as per our analysis, the above exception is not creating any 
> impact to us. And, it gets printed so many time in our application logs, 
> which causes confusion to users.
> We have no control to avoid printing of this exception in our application.
> Please let me know if thrift can ignore this exception so that it will not be 
> printed.
> If possible, please share the thrift version also, so that we can plan 
> accordingly.
> Let me know if any further information is required.
> Best Regards
> Isha
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to