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

Reply via email to