You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Raghu Angadi (JIRA)" <ji...@apache.org> on 2008/03/08 02:33:46 UTC

[jira] Updated: (HADOOP-2971) SocketTimeoutException in unit tests

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

Raghu Angadi updated HADOOP-2971:
---------------------------------

    Attachment: HADOOP-2971.patch

I thought I could avoid calling System.currentTimeMillis() while waiting and depend on select(). Tough luck.

The attached patch polls in a loop until timeout passes. Also remove a large block for setting "channeStr" and use use channel.toString() instead.

> SocketTimeoutException in unit tests
> ------------------------------------
>
>                 Key: HADOOP-2971
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2971
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: io
>    Affects Versions: 0.17.0
>            Reporter: Raghu Angadi
>            Assignee: Raghu Angadi
>         Attachments: HADOOP-2971.patch
>
>
> TestJobStatusPersistency failed and contained DataNode stacktraces similar to the following :
> {noformat}
> 2008-03-07 21:27:00,410 ERROR dfs.DataNode (DataNode.java:run(976)) - 127.0.0.1:57790:DataXceiver: java.net.SocketTimeoutException: 0 millis 
> timeout while waiting for Unknown Addr (local: /127.0.0.1:57790) to be ready for read
>         at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:188)
>         at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:135)
>         at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:121)
>         at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
>         at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
>         at java.io.DataInputStream.readInt(DataInputStream.java:370)
>         at org.apache.hadoop.dfs.DataNode$BlockReceiver.receiveBlock(DataNode.java:2434)
>         at org.apache.hadoop.dfs.DataNode$DataXceiver.writeBlock(DataNode.java:1170)
>         at org.apache.hadoop.dfs.DataNode$DataXceiver.run(DataNode.java:953)
>         at java.lang.Thread.run(Thread.java:619)
> {noformat}
> This is mostly related to HADOOP-2346. The error is strange. socket.getRemoteSocketAddress() returned null implying this socket is not connected yet. But we have already read a few bytes from it!.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.