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

Íñigo Goiri commented on HDFS-15062:
------------------------------------

Thanks [~ferhui] for the patch and [~weichiu] and [~ayushtkn] for the reviews.
Pushed to trunk, branch-3.2, branch-3.1, and branch-3.0.

> Add LOG when sendIBRs failed
> ----------------------------
>
>                 Key: HDFS-15062
>                 URL: https://issues.apache.org/jira/browse/HDFS-15062
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: datanode
>    Affects Versions: 3.0.3, 3.2.1, 3.1.3
>            Reporter: Fei Hui
>            Assignee: Fei Hui
>            Priority: Major
>             Fix For: 3.0.4, 3.3.0, 3.1.4, 3.2.2
>
>         Attachments: HDFS-15062.001.patch, HDFS-15062.002.patch, 
> HDFS-15062.003.patch
>
>
> {code}
>   /** Send IBRs to namenode. */
>   void sendIBRs(DatanodeProtocol namenode, DatanodeRegistration registration,
>       String bpid, String nnRpcLatencySuffix) throws IOException {
>     // Generate a list of the pending reports for each storage under the lock
>     final StorageReceivedDeletedBlocks[] reports = generateIBRs();
>     if (reports.length == 0) {
>       // Nothing new to report.
>       return;
>     }
>     // Send incremental block reports to the Namenode outside the lock
>     if (LOG.isDebugEnabled()) {
>       LOG.debug("call blockReceivedAndDeleted: " + Arrays.toString(reports));
>     }
>     boolean success = false;
>     final long startTime = monotonicNow();
>     try {
>       namenode.blockReceivedAndDeleted(registration, bpid, reports);
>       success = true;
>     } finally {
>       if (success) {
>         dnMetrics.addIncrementalBlockReport(monotonicNow() - startTime,
>             nnRpcLatencySuffix);
>         lastIBR = startTime;
>       } else {
>         // If we didn't succeed in sending the report, put all of the
>         // blocks back onto our queue, but only in the case where we
>         // didn't put something newer in the meantime.
>         putMissing(reports);
>       }
>     }
>   }
> {code}
> When call namenode.blockReceivedAndDelete failed, will put reports to 
> pendingIBRs. Maybe we should add log for failed case. It is helpful for 
> trouble shooting



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

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