Nick Shanin created SOLR-18530:
----------------------------------
Summary: 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: Bug
Components: Tests
Reporter: Nick Shanin
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]