Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
4.10.0
-
None
-
None
Description
When the RegionServer starts, I always find the region logs "Found some outstanding index updates that didn't succeed during WAL replay - attempting to replay now." That is because in following Indexer.postOpen method, the LOG.info in line 528 is before the if statement in line 531, so the method always log "Found some outstanding index updates that didn't succeed..." no matter whether there are outstanding index updates.
520 @Override 521 public void postOpen(final ObserverContext<RegionCoprocessorEnvironment> c) { 522 Multimap<HTableInterfaceReference, Mutation> updates = failedIndexEdits.getEdits(c.getEnvironment().getRegion()); 523 524 if (this.disabled) { 525 super.postOpen(c); 526 return; 527 } 528 LOG.info("Found some outstanding index updates that didn't succeed during" 529 + " WAL replay - attempting to replay now."); 530 //if we have no pending edits to complete, then we are done 531 if (updates == null || updates.size() == 0) { 532 return; 533 } 534 535 // do the usual writer stuff, killing the server again, if we can't manage to make the index 536 // writes succeed again 537 try { 538 writer.writeAndKillYourselfOnFailure(updates, true); 539 } catch (IOException e) { 540 LOG.error("During WAL replay of outstanding index updates, " 541 + "Exception is thrown instead of killing server during index writing", e); 542 } 543 }