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]

Reply via email to