Netflix / suro

Netflix's distributed Data Pipeline
Apache License 2.0
794 stars 170 forks source link

SocketException occurs when client send ping to sure server #130

Open zhenchuan opened 9 years ago

zhenchuan commented 9 years ago
➜  hdfs  uname -a
Darwin lucas.local 13.3.0 Darwin Kernel Version 13.3.0: Tue Jun  3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64 x86_64
➜  hdfs  
10:08:16.124 [Thread-4] WARN  org.apache.thrift.server.THsHaServer - Exception trying to accept!
org.apache.thrift.transport.TTransportException: java.net.SocketException: Invalid argument
    at com.netflix.suro.input.thrift.CustomServerSocket.acceptImpl(CustomServerSocket.java:98) ~[suro-server/:na]
    at com.netflix.suro.input.thrift.CustomServerSocket.acceptImpl(CustomServerSocket.java:36) ~[suro-server/:na]
    at org.apache.thrift.transport.TServerTransport.accept(TServerTransport.java:31) ~[libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.handleAccept(TNonblockingServer.java:223) [libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.select(TNonblockingServer.java:199) [libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.run(TNonblockingServer.java:158) [libthrift-0.9.1.jar:0.9.1]
Caused by: java.net.SocketException: Invalid argument
    at sun.nio.ch.Net.setIntOption0(Native Method) ~[na:1.7.0_45]
    at sun.nio.ch.Net.setSocketOption(Net.java:373) ~[na:1.7.0_45]
    at sun.nio.ch.SocketChannelImpl.setOption(SocketChannelImpl.java:189) ~[na:1.7.0_45]
    at sun.nio.ch.SocketAdaptor.setIntOption(SocketAdaptor.java:305) ~[na:1.7.0_45]
    at sun.nio.ch.SocketAdaptor.setSoLinger(SocketAdaptor.java:340) ~[na:1.7.0_45]
    at org.apache.thrift.transport.TNonblockingSocket.<init>(TNonblockingSocket.java:86) ~[libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.transport.TNonblockingSocket.<init>(TNonblockingSocket.java:72) ~[libthrift-0.9.1.jar:0.9.1]
    at com.netflix.suro.input.thrift.CustomServerSocket.acceptImpl(CustomServerSocket.java:91) ~[suro-server/:na]
    ... 5 common frames omitted
metacret commented 9 years ago

This is already know issue which I am not tracking because this is not critical. When the client connection is established, I can see this exception but client-server communication can go well. I agree with that this Exception is annoying and I will try to find simple workaround soon.

zhenchuan commented 9 years ago

thanks, and after client has send messages to server, sure server raised exception like bellows, but i can receive all message client send. but from the exception stack,i can not see what cause this ...

15:05:24.616 [Thread-6] WARN  o.a.t.s.AbstractNonblockingServer$FrameBuffer - Got an IOException in internalRead!
java.io.IOException: Connection reset by peer
    at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.7.0_45]
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.7.0_45]
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.7.0_45]
    at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[na:1.7.0_45]
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379) ~[na:1.7.0_45]
    at org.apache.thrift.transport.TNonblockingSocket.read(TNonblockingSocket.java:141) ~[libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.internalRead(AbstractNonblockingServer.java:537) [libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.read(AbstractNonblockingServer.java:338) [libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.AbstractNonblockingServer$AbstractSelectThread.handleRead(AbstractNonblockingServer.java:203) [libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.select(TNonblockingServer.java:202) [libthrift-0.9.1.jar:0.9.1]
    at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.run(TNonblockingServer.java:158) [libthrift-0.9.1.jar:0.9.1]
metacret commented 9 years ago

FYI, The above error message can be generated when the client closes the connection without flushing its frame buffer.

On Mon, Sep 22, 2014 at 12:14 AM, zhenchuan notifications@github.com wrote:

thanks, and after client has send messages to server, sure server raised exception like bellows, but i can receive all message client send.

15:05:24.616 [Thread-6] WARN o.a.t.s.AbstractNonblockingServer$FrameBuffer - Got an IOException in internalRead! java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.7.0_45] at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) ~[na:1.7.0_45] at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.7.0_45] at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[na:1.7.0_45] at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379) ~[na:1.7.0_45] at org.apache.thrift.transport.TNonblockingSocket.read(TNonblockingSocket.java:141) ~[libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.internalRead(AbstractNonblockingServer.java:537) [libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.read(AbstractNonblockingServer.java:338) [libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.server.AbstractNonblockingServer$AbstractSelectThread.handleRead(AbstractNonblockingServer.java:203) [libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.select(TNonblockingServer.java:202) [libthrift-0.9.1.jar:0.9.1] at org.apache.thrift.server.TNonblockingServer$SelectAcceptThread.run(TNonblockingServer.java:158) [libthrift-0.9.1.jar:0.9.1]

— Reply to this email directly or view it on GitHub https://github.com/Netflix/suro/issues/130#issuecomment-56336445.