Patson Luk created SOLR-16690: --------------------------------- Summary: ZkStateWriter#enqueueUpdate should execute callback even tho cmds is empty or no-op Key: SOLR-16690 URL: https://issues.apache.org/jira/browse/SOLR-16690 Project: Solr Issue Type: Improvement Security Level: Public (Default Security Level. Issues are Public) Components: SolrCloud Affects Versions: 9.1.1 Reporter: Patson Luk
{{ZkStateWriter#enqueueUpdate(ClusterState prevState, List<ZkWriteCommand> cmds, ZkWriteCallback callback)}} accepts a callback but such callback would not be called if either the cmds is empty or a no-op. However, this could cause issues in some scenarios, for example in {{Overseer$ClusterStateUpdater#run}}, it calls clusterState = processQueueItem(message, clusterState, zkStateWriter, true, () -> { stateUpdateQueue.remove(processedNodes); processedNodes.clear(); }); Which it relies on the callback to remove items from the work queue, however if the message does not create an empty {{List<ZkWriteCommand>}} - for example "DOWNNODE" for PRS enabled collection, then the callback will be ignored hence the `stateUpdateQueue.remove(processedNodes);` would not be run even though it has finished processing the message -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org