This is an automated email from the ASF dual-hosted git repository.
technoboy pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/branch-3.0 by this push:
new 467699ff37b [fix][meta] Fix deadlock in AutoRecovery. (#21010)
467699ff37b is described below
commit 467699ff37b147c7ec74d00bff27a2ed19563ab5
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);
+// }
+// });
}
}