[fix][broker] Ignore and remove the replicator cursor when the remote cluster is absent#23
Open
BewareMyPower wants to merge 2 commits intomasterfrom
Open
[fix][broker] Ignore and remove the replicator cursor when the remote cluster is absent#23BewareMyPower wants to merge 2 commits intomasterfrom
BewareMyPower wants to merge 2 commits intomasterfrom
Conversation
c57d1ac to
1469b85
Compare
4 tasks
… cluster is absent ### Motivation Sometimes when a remote cluster is deleted, the replication cursor might still exist for some topics. In this case, creating producers or consumers on these topics will fail. Here is a log observed in a production environment: > WARN org.apache.pulsar.broker.service.BrokerService - Replication or > dedup check failed. Removing topic from topics list > persistent://public/__kafka/__consumer_offsets-partition-40, > java.util.concurrent.CompletionException: java.lang.RuntimeException: > org.apache.pulsar.metadata.api.MetadataStoreException$NotFoundException: > kop If it happened, unloading the topic or restarting the broker could not help. We have to remove the cursor manually. ### Modificatons In `addReplicationCluster`, before getting the replication client, check the namespace policy and topic policy first. If the remote cluster does not exist, skip adding the replication client and remove the cursor. ### Verifications `PersistentTopicTest#testCreateTopicWithZombieReplicatorCursor` is added to verify `PersistentTopic#initialize` will succeed and the zombie replicator cursor will be removed.
1469b85 to
8aeb37d
Compare
|
The pr had no activity for 30 days, mark with Stale label. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Sometimes when a remote cluster is deleted, the replication cursor might still exist for some topics. In this case, creating producers or consumers on these topics will fail.
Here is a log observed in a production environment:
If it happened, unloading the topic or restarting the broker could not help. We have to remove the cursor manually.
Modificatons
When initializing a
PersistentTopic, if there is any replicator cursor while the responding cluster does not exist, ignore the exception fromaddReplicationCluster. Then, remove this "zombie" cursor.Verifications
PersistentTopicTest#testCreateTopicWithZombieReplicatorCursoris added to verifyPersistentTopic#initializewill succeed and the zombie replicator cursor will be removed.