[ 
https://issues.apache.org/jira/browse/HDFS-637?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12758906#action_12758906
 ] 

Hairong Kuang commented on HDFS-637:
------------------------------------

All unit tests passed. Test patch result:
     [exec] +1 overall.
     [exec]
     [exec]     +1 @author.  The patch does not contain any @author tags.
     [exec]
     [exec]     -1 tests included.  The patch doesn't appear to include any new 
or modified tests.
     [exec]                         Please justify why no new tests are needed 
for this patch.
     [exec]                         Also please list what manual steps were 
performed to verify this patch.
     [exec]
     [exec]     +1 javadoc.  The javadoc tool did not generate any warning 
messages.
     [exec]
     [exec]     +1 javac.  The applied patch does not increase the total number 
of javac compiler warnings.
     [exec]
     [exec]     +1 findbugs.  The patch does not introduce any new Findbugs 
warnings.
     [exec]
     [exec]     +1 release audit.  The applied patch does not increase the 
total number of release audit warnings.

Unit test is not included because HDFS-624 exposed the bug and with this patch 
the previously failed test is passed.


> DataNode sends an Success ack when block write fails
> ----------------------------------------------------
>
>                 Key: HDFS-637
>                 URL: https://issues.apache.org/jira/browse/HDFS-637
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: data-node
>            Reporter: Hairong Kuang
>            Assignee: Hairong Kuang
>            Priority: Blocker
>             Fix For: 0.21.0
>
>         Attachments: interrupted.patch, interrupted1.patch
>
>
> When I work on HDFS-624, I saw TestFileAppend3#TC7 occasionally fails. After 
> lots of debug, I saw that the client unexpected received a response of "-2 
> SUCCESS SUCCESS" in which -2 is the packet sequence number. This happened in 
> a pipeline of 2 datanodes and one of them failed. It turned out when block 
> receiver fails, it shuts down itself and interrupts the packet responder but 
> responder tries to handle interruption with the condition 
> "Thread.isInterrupted()" but unfortunately a thread's interrupt status is not 
> set in some cases as explained in the Thread#interrupt javadoc:
>  If this thread is blocked in an invocation of the wait(), wait(long), or 
> wait(long, int) methods of the Object  class, or of the join(), join(long), 
> join(long, int), sleep(long), or sleep(long, int), methods of this class, 
> then its interrupt status will be cleared and it will receive an 
> InterruptedException. 
> So datanode does not detect the interruption and continues as if no error 
> occurs.

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

Reply via email to