Subscription: preserve topic updates during owner transfer - #18353
Subscription: preserve topic updates during owner transfer#18353Caideyipi wants to merge 2 commits into
Conversation
jt2594838
left a comment
There was a problem hiding this comment.
Need to check other similar concurrent issues for the same topic
|
Checked the other same-topic concurrency paths. I found and fixed two related windows: concurrent partial ALTER TOPIC requests could both build from one stale snapshot and overwrite each other, and overlapping owner transfers could share the renewal-block entry and unblock it too early. Commit 22c743b now serializes client alterations per topic (different topics remain concurrent) and rebases the attribute delta after the procedure acquires the subscription lock. The new persisted procedure variant keeps the old embedded serialization format compatible. Added lock, rebase, and serialization coverage; the focused ConfigNode tests pass (11/11). |
Description
Problem
An owner-transfer request built its full updated
TopicMetabefore waiting for the previous owner's lease to expire. While that request was waiting, anotherALTER TOPICcould update attributes such ascolumn-filter. A delayed or retried owner-transfer request would then submit its pre-wait snapshot and restore the old attributes.Fix
TopicMetaand merge only the attributes from the owner-transfer request.Validation
mvn spotless:apply -pl iotdb-core/confignodemvn -pl iotdb-core/confignode -am -Dtest=SubscriptionCoordinatorTest -Dsurefire.failIfNoSpecifiedTests=false testIoTDBConsensusSubscriptionColumnFilterClusterITwas skipped during cluster setup because the local template contained mixed DataNode classes (NoSuchMethodError: IoTDBConfig.isEnableWhiteList()), before the test body ran.This PR has:
Key changed/added classes
SubscriptionCoordinatorSubscriptionCoordinatorTest