[fix][broker] Fix partitioned topic auto deletion http request timeout #24912
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.
Fixes #24879
Motivation
Partitioned-topic auto deletion call chain:
If brokerClient's
connectionsPerBrokeris 1, then broker0 wait itself to release the connection, the result is timeout. So we check topic-partition-0 existence first to avoid connection pool deadlock.Modifications
When calling delete partitioned-topic admin api, first check topic partitions existence to avoid calling delete topic admin api by broker itself again, which would help partitioned-topic auto deletion in gc process.
Verifying this change
This change is already covered by existing tests, such as (please describe tests).
InactiveTopicDeleteTest#testWhenSubPartitionNotDelete()test method.pulsar/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/InactiveTopicDeleteTest.java
Lines 113 to 136 in 1ca1797
But the default
connectionsPerBrokeris 16, which can not reproduce the problem.pulsar/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PulsarAdminBuilderImpl.java
Lines 48 to 51 in 1ca1797
Does this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes
Documentation
docdoc-requireddoc-not-neededdoc-completeMatching PR in forked repository
PR in forked repository: oneby-wang#8