[
https://issues.apache.org/jira/browse/SOLR-18576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated SOLR-18576:
----------------------------------
Labels: pull-request-available (was: )
> BasicDistributedZk2Test.test fails when an update follows a forced ZooKeeper
> session expiry before the client is LOST
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-18576
> URL: https://issues.apache.org/jira/browse/SOLR-18576
> Project: Solr
> Issue Type: Test
> Reporter: Nick Shanin
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> BasicDistributedZk2Test.test failed in GitHub Actions ("Solr Tests via
> Crave") on PR #5194 (head 9356388a9c, job 119782100387, run 39745575206,
> 2026-10-22, seed 7E5494314774A841). The failure:
> org.apache.solr.client.solrj.RemoteSolrException: Error from server at
> http://127.0.0.1:44843/solr/collection1_shard1_replica_n5/update:
> org.apache.solr.common.SolrException: Cannot talk to ZooKeeper - Updates are
> disabled.
> at BasicDistributedZk2Test.test(BasicDistributedZk2Test.java:164)
> Sequence from the job log (test-suite output, ms from suite start):
> 88657: ChaosMonkey expires the session of node 127.0.0.1:44843
> (expireSession).
> 88660: Curator reports "Session expired event received" and the connection
> state moves to LOST.
> 88664: the update to that node is rejected with 503 "Updates are disabled",
> because DistributedZkUpdateProcessor checks zkController.isConnected().
> The test waits with CuratorFramework.blockUntilConnected(30s) right after
> expireSession, but ChaosMonkey.expireSession only waits until the client
> reports disconnected. The expired-session event is delivered asynchronously,
> so the wait can return while the node still reports connected, and the next
> update races the expiry.
> Scope: the failing path is test-only. Production code is unchanged. The test
> code is identical on main; the blockUntilConnected wait was added in #4901
> (b1cbbbf1a1f). PR #5194 (additive schema API) does not touch this path.
> Proposed fix: register a connection-state listener before expiring the
> session, wait for the expired-session callback, then wait for reconnection.
> Test-only change to BasicDistributedZk2Test.java.
> Also, the failure doesn't seem to be visible on the PR:
> https://github.com/apache/solr/pull/5194
> Nor in develocity:
> https://develocity.apache.org/scans/tests?search.buildOutcome=failure&search.rootProjectNames=solr-root&search.timeZoneId=America%2FNew_York
> But it is visible here:
> https://github.com/apache/solr/actions/runs/39745575206/job/119782100387
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]