[ 
https://issues.apache.org/jira/browse/HDFS-15379?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ludun updated HDFS-15379:
-------------------------
    Description: 
In createBlockOutputStream if thread was interrupted becuase timeout to conenct 
to DataNode.

{{{quote}2020-05-27 18:32:53,310 | DEBUG | Connecting to datanode 
xx.xx.xx.xx:25009 | DataStreamer.java:251
2020-05-27 18:33:50,457 | INFO  | Exception in createBlockOutputStream 
blk_1115121199_41386360 | DataStreamer.java:1854
 java.io.InterruptedIOException: Interrupted while waiting for IO on channel 
java.nio.channels.SocketChannel[connected local=/xx.xx.xx.xx:40370 
remote=/xx.xx.xx.xx:25009]. 615000 millis timeout left.
        at 
org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:342)
        at 
org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157)
        at 
org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161)
        at 
org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131)
        at 
org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:118)
        at java.io.FilterInputStream.read(FilterInputStream.java:83)
        at java.io.FilterInputStream.read(FilterInputStream.java:83)
        at 
org.apache.hadoop.hdfs.protocolPB.PBHelperClient.vintPrefixed(PBHelperClient.java:551)
        at 
org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1826)
        at 
org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1743)
        at 
org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:718){quote}}}

then abbandblock rpc to namenode also failed due to interrupted exception 
immediately.

bq. {quote}2020-05-27 18:33:50,461 | DEBUG | Connecting to xx/xx.xx.xx.xx:25000 
| Client.java:814
bq. 2020-05-27 18:33:50,462 | DEBUG | Failed to connect to server: 
xx/xx.xx.xx.xx:25000: try once and fail. | Client.java:956
bq. java.nio.channels.ClosedByInterruptException
bq.     at 
java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
bq.     at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:659)
bq.     at 
org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192)
bq.     at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
bq.     at 
org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:720)
bq.     at 
org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:823)
bq.     at org.apache.hadoop.ipc.Client$Connection.access$3700(Client.java:436)
bq.     at org.apache.hadoop.ipc.Client.getConnection(Client.java:1613)
bq.     at org.apache.hadoop.ipc.Client.call(Client.java:1444)
bq.     at org.apache.hadoop.ipc.Client.call(Client.java:1397)
bq.     at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:234)
bq.     at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118)
bq.     at com.sun.proxy.$Proxy10.abandonBlock(Unknown Source)
bq.     at 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.abandonBlock(ClientNamenodeProtocolTranslatorPB.java:509)
bq.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
bq.     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
bq.     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
bq.     at java.lang.reflect.Method.invoke(Method.java:498)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359)
bq.     at com.sun.proxy.$Proxy11.abandonBlock(Unknown Source)
bq.     at 
org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1748)
bq.     at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:718){quote}



  was:
In createBlockOutputStream if thread was interrupted becuase timeout to conenct 
to DataNode.

bq. {quote}2020-05-27 18:32:53,310 | DEBUG | Connecting to datanode 
xx.xx.xx.xx:25009 | DataStreamer.java:251
bq. 2020-05-27 18:33:50,457 | INFO  | Exception in createBlockOutputStream 
blk_1115121199_41386360 | DataStreamer.java:1854
bq. java.io.InterruptedIOException: Interrupted while waiting for IO on channel 
java.nio.channels.SocketChannel[connected local=/xx.xx.xx.xx:40370 
remote=/xx.xx.xx.xx:25009]. 615000 millis timeout left.
bq.     at 
org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:342)
bq.     at 
org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157)
bq.     at 
org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161)
bq.     at 
org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131)
bq.     at 
org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:118)
bq.     at java.io.FilterInputStream.read(FilterInputStream.java:83)
bq.     at java.io.FilterInputStream.read(FilterInputStream.java:83)
bq.     at 
org.apache.hadoop.hdfs.protocolPB.PBHelperClient.vintPrefixed(PBHelperClient.java:551)
bq.     at 
org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1826)
bq.     at 
org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1743)
bq.     at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:718){quote}

then abbandblock rpc to namenode also failed due to interrupted exception 
immediately.

bq. {quote}2020-05-27 18:33:50,461 | DEBUG | Connecting to xx/xx.xx.xx.xx:25000 
| Client.java:814
bq. 2020-05-27 18:33:50,462 | DEBUG | Failed to connect to server: 
xx/xx.xx.xx.xx:25000: try once and fail. | Client.java:956
bq. java.nio.channels.ClosedByInterruptException
bq.     at 
java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
bq.     at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:659)
bq.     at 
org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192)
bq.     at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
bq.     at 
org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:720)
bq.     at 
org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:823)
bq.     at org.apache.hadoop.ipc.Client$Connection.access$3700(Client.java:436)
bq.     at org.apache.hadoop.ipc.Client.getConnection(Client.java:1613)
bq.     at org.apache.hadoop.ipc.Client.call(Client.java:1444)
bq.     at org.apache.hadoop.ipc.Client.call(Client.java:1397)
bq.     at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:234)
bq.     at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118)
bq.     at com.sun.proxy.$Proxy10.abandonBlock(Unknown Source)
bq.     at 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.abandonBlock(ClientNamenodeProtocolTranslatorPB.java:509)
bq.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
bq.     at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
bq.     at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
bq.     at java.lang.reflect.Method.invoke(Method.java:498)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)
bq.     at 
org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359)
bq.     at com.sun.proxy.$Proxy11.abandonBlock(Unknown Source)
bq.     at 
org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1748)
bq.     at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:718){quote}




> DataStreamer should reset thread interrupted state in createBlockOutputStream
> -----------------------------------------------------------------------------
>
>                 Key: HDFS-15379
>                 URL: https://issues.apache.org/jira/browse/HDFS-15379
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: dfsclient
>    Affects Versions: 2.7.7, 3.1.3
>            Reporter: ludun
>            Priority: Major
>
> In createBlockOutputStream if thread was interrupted becuase timeout to 
> conenct to DataNode.
> {{{quote}2020-05-27 18:32:53,310 | DEBUG | Connecting to datanode 
> xx.xx.xx.xx:25009 | DataStreamer.java:251
> 2020-05-27 18:33:50,457 | INFO  | Exception in createBlockOutputStream 
> blk_1115121199_41386360 | DataStreamer.java:1854
>  java.io.InterruptedIOException: Interrupted while waiting for IO on channel 
> java.nio.channels.SocketChannel[connected local=/xx.xx.xx.xx:40370 
> remote=/xx.xx.xx.xx:25009]. 615000 millis timeout left.
>       at 
> org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:342)
>       at 
> org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157)
>       at 
> org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161)
>       at 
> org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131)
>       at 
> org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:118)
>       at java.io.FilterInputStream.read(FilterInputStream.java:83)
>       at java.io.FilterInputStream.read(FilterInputStream.java:83)
>       at 
> org.apache.hadoop.hdfs.protocolPB.PBHelperClient.vintPrefixed(PBHelperClient.java:551)
>       at 
> org.apache.hadoop.hdfs.DataStreamer.createBlockOutputStream(DataStreamer.java:1826)
>       at 
> org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1743)
>       at 
> org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:718){quote}}}
> then abbandblock rpc to namenode also failed due to interrupted exception 
> immediately.
> bq. {quote}2020-05-27 18:33:50,461 | DEBUG | Connecting to 
> xx/xx.xx.xx.xx:25000 | Client.java:814
> bq. 2020-05-27 18:33:50,462 | DEBUG | Failed to connect to server: 
> xx/xx.xx.xx.xx:25000: try once and fail. | Client.java:956
> bq. java.nio.channels.ClosedByInterruptException
> bq.   at 
> java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:202)
> bq.   at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:659)
> bq.   at 
> org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:192)
> bq.   at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
> bq.   at 
> org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:720)
> bq.   at 
> org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:823)
> bq.   at org.apache.hadoop.ipc.Client$Connection.access$3700(Client.java:436)
> bq.   at org.apache.hadoop.ipc.Client.getConnection(Client.java:1613)
> bq.   at org.apache.hadoop.ipc.Client.call(Client.java:1444)
> bq.   at org.apache.hadoop.ipc.Client.call(Client.java:1397)
> bq.   at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:234)
> bq.   at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118)
> bq.   at com.sun.proxy.$Proxy10.abandonBlock(Unknown Source)
> bq.   at 
> org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.abandonBlock(ClientNamenodeProtocolTranslatorPB.java:509)
> bq.   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> bq.   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> bq.   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> bq.   at java.lang.reflect.Method.invoke(Method.java:498)
> bq.   at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422)
> bq.   at 
> org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165)
> bq.   at 
> org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157)
> bq.   at 
> org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)
> bq.   at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359)
> bq.   at com.sun.proxy.$Proxy11.abandonBlock(Unknown Source)
> bq.   at 
> org.apache.hadoop.hdfs.DataStreamer.nextBlockOutputStream(DataStreamer.java:1748)
> bq.   at org.apache.hadoop.hdfs.DataStreamer.run(DataStreamer.java:718){quote}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to