opensearch-project / opensearch-project/opensearch-java

[BUG]ApacheHttpClient5Transport enters unrecoverable state after IOReactorShutdownException

Open
#1,969 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.