File tree 1 file changed +12
-0
lines changed
bookkeeper-server/src/main/java/org/apache/bookkeeper/meta
1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -636,6 +636,10 @@ public void releaseUnderreplicatedLedger(long ledgerId) throws ReplicationExcept
636
636
}
637
637
} catch (KeeperException .NoNodeException nne ) {
638
638
// this is ok
639
+ } catch (KeeperException .ConnectionLossException | KeeperException .SessionExpiredException ke ) {
640
+ LOG .error ("Error deleting underreplicated ledger lock,we need to retry" , ke );
641
+ waitBackOffTime (1000 );
642
+ releaseUnderreplicatedLedger (ledgerId );
639
643
} catch (KeeperException ke ) {
640
644
LOG .error ("Error deleting underreplicated ledger lock" , ke );
641
645
throw new ReplicationException .UnavailableException ("Error contacting zookeeper" , ke );
@@ -646,6 +650,14 @@ public void releaseUnderreplicatedLedger(long ledgerId) throws ReplicationExcept
646
650
heldLocks .remove (ledgerId );
647
651
}
648
652
653
+ private static void waitBackOffTime (long backoffMs ) {
654
+ try {
655
+ Thread .sleep (backoffMs );
656
+ } catch (InterruptedException e ) {
657
+ Thread .currentThread ().interrupt ();
658
+ }
659
+ }
660
+
649
661
@ Override
650
662
public void close () throws ReplicationException .UnavailableException {
651
663
if (LOG .isDebugEnabled ()) {
You can’t perform that action at this time.
0 commit comments