HDFS-16426. Fix nextBlockReportTime when trigger full block report force (#3887)

This commit is contained in:
qinyuren 2022-01-19 12:42:33 +08:00 committed by GitHub
parent d8ab84275e
commit fcb1076699
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 0 deletions

View File

@ -1271,6 +1271,7 @@ boolean isOutliersReportDue(long curTime) {
void forceFullBlockReportNow() { void forceFullBlockReportNow() {
forceFullBlockReport.set(true); forceFullBlockReport.set(true);
resetBlockReportTime = true;
} }
/** /**

View File

@ -141,6 +141,23 @@ public void testScheduleNextBlockReport3() {
} }
} }
/**
* force trigger full block report multi times, the next block report
* must be scheduled in the range (now + BLOCK_REPORT_INTERVAL_SEC).
*/
@Test
public void testScheduleNextBlockReport4() {
for (final long now : getTimestamps()) {
Scheduler scheduler = makeMockScheduler(now);
for (int i = 0; i < getTimestamps().size(); ++i) {
scheduler.forceFullBlockReportNow();
scheduler.scheduleNextBlockReport();
}
assertTrue(scheduler.getNextBlockReportTime() - now >= 0);
assertTrue(scheduler.getNextBlockReportTime() - now <= BLOCK_REPORT_INTERVAL_MS);
}
}
@Test @Test
public void testScheduleHeartbeat() { public void testScheduleHeartbeat() {
for (final long now : getTimestamps()) { for (final long now : getTimestamps()) {