[fix][broker] Fix partitioned topic auto deletion http request timeout#24912
[fix][broker] Fix partitioned topic auto deletion http request timeout#24912oneby-wang wants to merge 5 commits intoapache:masterfrom
Conversation
|
Could you please add a test for this pr ? |
|
Hi, @Technoboy-, thanks for reminding me. This PR is covered by existing test, see But I configured the admin Without this PR's fix, This PR fixes the issue, so it can pass now. |
|
Beyond this PR's issue , one more issue exists in #24879. Race condition when deleting partitioned topic, see #24879 (comment). I haven't figured out the side effects of the race condition yet, and haven't found a good solution to solve the race condition. It seems like a distributed lock or cas operation is needed, because multi brokers may fire the GC process at the same time, but this solution needs more discussion. |
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.See also: #24879 (comment)
Modifications
When calling delete partitioned-topic admin api, first check topic partitions existence to avoid calling 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