opensearch-project / opensearch-project/opensearch-java
[BUG]ApacheHttpClient5Transport enters unrecoverable state after IOReactorShutdownException
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 165
- Forks
- 250
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 26
Description
Description
We are encountering a persistent IOReactorShutdownException ("I/O reactor has been shut down") when using ApacheHttpClient5Transport.
Once the transport enters this state—typically triggered under high load or following an OOM event—all subsequent requests fail consistently. The client does not recover automatically, and the only workaround is to restart the process or manually recreate the client/transport.
This effectively puts the application into a permanently degraded state.
Context & Comparison
This behavior appears similar to an issue previously reported and addressed in the Elasticsearch Java client:
Issue: elastic/elasticsearch-java#1046
Fix/Mitigation: elastic/elasticsearch-java#1049
The fix there ensures the transport can recover instead of remaining in a failed state.
Expected Behavior
The OpenSearch Java Client should provide similar resilience, allowing the transport layer to recover from IOReactorShutdownException without requiring a full application restart or manual client reinitialization.
Current Environment
Library: OpenSearch Java Client
Version: 3.4.0
Transport: ApacheHttpClient5Transport 5.5.2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the ApacheHttpClient5Transport entry point and reproduce the persistent IOReactorShutdownException behavior described for OpenSearch Java Client 3.4.0. Compare the transport recovery approach in elastic/elasticsearch-java#1049, then verify that requests recover without restarting the process or manually recreating the client.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100