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

Staffan Friberg commented on HDFS-10563:
----------------------------------------

Unless I'm counting {} wrong it looks like the put is inside the if statement.

> Block reports could be silently dropped by NN
> ---------------------------------------------
>
>                 Key: HDFS-10563
>                 URL: https://issues.apache.org/jira/browse/HDFS-10563
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 2.8.0, 2.7.3
>            Reporter: Staffan Friberg
>            Priority: Critical
>
> Reading through the block reporting code I think I've spotted a case when 
> block reports can silently be dropped and leave thread waiting indefinitely 
> on a FutureTask that never will be executed.
> The BlockReportProcessingThread.enqueue method doesn't return any status on 
> if the enqueuing of the task was successful and does not handle the case when 
> the queue is full and offer return false.
> Going back through the call stack to BlockManager.runBlockOp, which 
> indirectly calls enqueue with a FutureTask and then proceeds to do get() om 
> the task.
> So if the internal queue in the BlockReportingProcessingThread is full, the 
> BR would never be handled and the thread queuing the task would wait 
> indefinitely on the FutureTask that will never be executed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to