[
https://issues.apache.org/jira/browse/SOLR-18530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nick Shanin updated SOLR-18530:
-------------------------------
Issue Type: Test (was: Bug)
> RecoveryAfterSoftCommitTest.test fails intermittently with
> ClosedChannelException after the proxy of a replica is closed
> ------------------------------------------------------------------------------------------------------------------------
>
> Key: SOLR-18530
> URL: https://issues.apache.org/jira/browse/SOLR-18530
> Project: Solr
> Issue Type: Test
> Components: Tests
> Reporter: Nick Shanin
> Priority: Minor
>
> AI text below
> h2. What happens
> {\{RecoveryAfterSoftCommitTest.test}} fails intermittently in CI with a
> \{{ClosedChannelException}} on a client add, after the test closes the proxy
> of the non-leader replica. Seen on an apache/solr CI run for an unrelated
> change: [run
> 37987632639|[https://github.com/apache/solr/actions/runs/37987632639]], seed
> \{{A57A22E346C237C6}}. Local runs with the same seed on current main and on
> the head of that change do not reproduce it.
> h2. Likely mechanism
> * The test closes the proxy of the non-leader replica (test line 98), which
> closes the TCP connections the client holds to that proxy.
> * A later add can still be routed to the cut replica, because any-replica
> routing picks it about half the time.
> * The write commits on the server, then the response stream fails with
> \{{ClosedChannelException}} on the stale pooled HTTP/2 connection, before the
> client sees the close.
> * Neither \{{CloudSolrClient}} nor \{{LBSolrClient}} retries this failure,
> so the test fails even though the update succeeded.
> h2. Proposed fix
> In the test, route the writes made after the proxy is closed through a
> leaders-only client, so no write depends on a connection to the cut replica.
> No production change.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]