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]

Reply via email to