rdhabalia opened a new pull request #5599: [pulsar-broker] close 
managed-ledgers before giving up bundle ownership to avoid bad zk-version
URL: https://github.com/apache/pulsar/pull/5599
 
 
   ### Motivation
   
   right now, while unloading bundle: broker removes ownership of bundle after 
timeout even if topic's managed-ledger is not closed successfully and 
`ManagedLedgerFactoryImpl` closes unclosed ml-ledger on broker shutdown which 
causes bad zk-version in to the new broker and because of that cursors are not 
able to update cursor-metadata into zk.
   
   ```
   01:01:13.452 [shutdown-thread-57-1] INFO  
org.apache.pulsar.broker.namespace.OwnedBundle - Disabling ownership: 
my-property/my-cluster/my-ns/0xd0000000_0xe0000000
   :
   01:01:13.653 [shutdown-thread-57-1] INFO  
org.apache.pulsar.broker.service.BrokerService - 
[persistent://my-property/my-cluster/my-ns/topic-partition-53] Unloading topic
   :
   01:02:13.677 [shutdown-thread-57-1] INFO  
org.apache.pulsar.broker.namespace.OwnedBundle - Unloading 
my-property/my-cluster/my-ns/0xd0000000_0xe0000000 namespace-bundle with 0 
topics completed in 60225.0 ms
   :
   01:02:13.675 [shutdown-thread-57-1] ERROR 
org.apache.pulsar.broker.namespace.OwnedBundle - Failed to close topics in 
namespace my-property/my-cluster/my-ns/0xd0000000_0xe0000000 in 1/MINUTES 
timeout
   01:02:13.677 [pulsar-ordered-OrderedExecutor-7-0-EventThread] INFO  
org.apache.pulsar.broker.namespace.OwnershipCache - 
[/namespace/my-property/my-cluster/my-ns/0xd0000000_0xe0000000] Removed zk lock 
for service unit: OK
   :
   01:02:14.404 [shutdown-thread-57-1] INFO  
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl - 
[my-property/my-cluster/my-ns/persistent/topic-partition-53] Closing managed 
ledger
   ```
   
   ### Modification
   
   This fix will make sure that broker closes managed-ledger before giving up 
bundle ownership to avoid below exception at new broker where bundle moves
   ```
   
   19:50:25.801 [bookkeeper-ml-workers-OrderedExecutor-8-0] WARN  
org.apache.bookkeeper.mledger.impl.ManagedCursorImpl - 
[my-property/my-cluster/persistent/topic-partition-53] Failed to update 
consumer usne1
   org.apache.bookkeeper.mledger.ManagedLedgerException$BadVersionException: 
org.apache.zookeeper.KeeperException$BadVersionException: KeeperErrorCode = 
BadVersion
   Caused by: org.apache.zookeeper.KeeperException$BadVersionException: 
KeeperErrorCode = BadVersion
        at 
org.apache.zookeeper.KeeperException.create(KeeperException.java:118) 
~[zookeeper-3.4.13.jar:3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03]
        at 
org.apache.bookkeeper.mledger.impl.MetaStoreImplZookeeper.lambda$null$125(MetaStoreImplZookeeper.java:288)
 ~[managed-ledger-original-2.4.4-yahoo.jar:2.4.4-yahoo]
        at 
org.apache.bookkeeper.mledger.util.SafeRun$1.safeRun(SafeRun.java:32) 
[managed-ledger-original-2.4.4-yahoo.jar:2.4.4-yahoo]
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to