Fei Hui created HDFS-15062:
------------------------------
Summary: 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.1.3, 3.2.1, 3.0.3
Reporter: Fei Hui
Assignee: Fei Hui
{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: [email protected]
For additional commands, e-mail: [email protected]