xiangfu0 opened a new pull request, #20107:
URL: https://github.com/apache/pinot/pull/20107

   ## Summary
   
   Minion additions/removals currently make every server reread all server 
configs on the Helix callback thread.
   Cache participant names and skip those config reads when membership changes 
involve only non-server instances.
   One participant-list read per child callback remains.
   
   This updates `ServerMailboxChannelRefreshHandler`, formerly 
`ServerGrpcChannelBackoffResetHandler`.
   INIT, server membership changes, ambiguous unchanged snapshots, and retries 
after failed reads retain full scans.
   Channel refresh and retirement behavior stays the same.
   
   ## How to reproduce
   
   Initialize the listener with a server, then add and remove a `Minion_*` 
participant without changing server membership.
   Before this fix, both child callbacks reread the server config.
   After this fix, they only read participant names, and subsequent server 
startup callbacks still refresh the channel.
   
   The regression test `testMinionMembershipChangesDoNotReadServerConfigs` 
failed before the fix:
   expected one server-config read, observed three.
   
   ## Validation
   
   - `ServerMailboxChannelRefreshHandlerTest`: 17 passed, no failures or skips, 
with `pinot-fastdev` disabled.
   - JDK 25; compiled the module and dependencies with deprecation and warning 
reporting enabled.
   - `spotless:apply`, `license:format`, `checkstyle:check`, and 
`license:check` passed on `pinot-server`.
   


-- 
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