Nick Shanin created SOLR-18576:
----------------------------------
Summary: 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
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]