[
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.