2748109647 opened a new pull request, #20064: URL: https://github.com/apache/pinot/pull/20064
Fixes #20062 ## Problem `updateInstance` reads the current Helix instance config and later writes that whole snapshot. If a participant restarts between those operations, it can publish a newer `pinotVersion` and `capabilities` map that the controller then overwrites with stale values. ## Change Apply the request-owned fields through Helix `updateProperty`, so the updater modifies the latest record and preserves fields the request does not own. Keep the existing `queriesDisabled=true` preservation behavior. Add a regression test that simulates a participant restart between the initial read and update, then checks that the latest version and capabilities survive while the requested tags are applied. ## Verification - `mvn -B -Ppinot-fastdev -pl pinot-controller -Dtest=PinotHelixResourceManagerConfigValidationTest -Dsurefire.failIfNoSpecifiedTests=false test` — passed, 6 tests. - `mvn -B -Ppinot-fastdev -pl pinot-controller -Dspotless.check.skip=false spotless:check` — passed. - Checkstyle reported 0 violations for the controller module. - `git diff --check` — passed. The full controller test suite was not run; only `PinotHelixResourceManagerConfigValidationTest` was executed. The race regression uses a Helix `DataUpdater` test double rather than a live ZooKeeper ensemble. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
