This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new cd8f7cac4cd [fix][meta] Fix deadlock in AutoRecovery. (#21010)
cd8f7cac4cd is described below
commit cd8f7cac4cda8c393edf0099a416acde09718c5e
Author: Yan Zhao <[email protected]>
AuthorDate: Mon Aug 21 09:41:50 2023 +0800
[fix][meta] Fix deadlock in AutoRecovery. (#21010)
---
.../bookkeeper/PulsarLedgerUnderreplicationManager.java | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
index cf8ff208c94..79fdc44cb2b 100644
---
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
+++
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/bookkeeper/PulsarLedgerUnderreplicationManager.java
@@ -978,11 +978,13 @@ public class PulsarLedgerUnderreplicationManager
implements LedgerUnderreplicati
@Override
public void
notifyUnderReplicationLedgerChanged(BookkeeperInternalCallbacks.GenericCallback<Void>
cb)
throws ReplicationException.UnavailableException {
- log.debug("notifyUnderReplicationLedgerChanged()");
- store.registerListener(e -> {
- if (e.getType() == NotificationType.Deleted &&
ID_EXTRACTION_PATTERN.matcher(e.getPath()).find()) {
- cb.operationComplete(0, null);
- }
- });
+ //The store listener callback executor is metadata-store executor,
+ //in cb.operationComplete(0, null), it will get all underreplication
ledgers from metadata-store, it's sync
+ //operation. So it's a deadlock.
+// store.registerListener(e -> {
+// if (e.getType() == NotificationType.Deleted &&
ID_EXTRACTION_PATTERN.matcher(e.getPath()).find()) {
+// cb.operationComplete(0, null);
+// }
+// });
}
}