-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use async client for delete blob or path in S3 Blob Container #16788
base: main
Are you sure you want to change the base?
Conversation
❌ Gradle check result for 384b63a: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
384b63a
to
1c58299
Compare
❌ Gradle check result for 1c58299: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 49d893f: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 81e356d: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for de40809: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
de40809
to
d9b306e
Compare
❌ Gradle check result for d9b306e: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for d9b306e: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for d9b306e: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Signed-off-by: Ashish Singh <[email protected]>
Signed-off-by: Ashish Singh <[email protected]>
Signed-off-by: Ashish Singh <[email protected]>
Signed-off-by: Ashish Singh <[email protected]>
Signed-off-by: Ashish Singh <[email protected]>
Signed-off-by: Ashish Singh <[email protected]>
d9b306e
to
1db7150
Compare
❌ Gradle check result for 1db7150: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 1db7150: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #16788 +/- ##
============================================
- Coverage 72.21% 72.18% -0.03%
+ Complexity 65335 65273 -62
============================================
Files 5318 5318
Lines 304081 303991 -90
Branches 43995 43982 -13
============================================
- Hits 219578 219425 -153
- Misses 66541 66576 +35
- Partials 17962 17990 +28 ☔ View full report in Codecov by Sentry. |
Trying to increase the coverage to unit tests. |
Description
This PR addresses the port exhaustion issue (issue #16883) causing indexing failures and partial snapshots in OpenSearch clusters with high indexing loads. The problem manifests as periodic spikes in 5xx HTTP status codes during indexing operations and "Cannot assign requested address" exceptions in logs, particularly during stale segment deletion.
While an async client already exists, this PR extends its use to cover all S3 blob delete operations. This change aims to significantly reduce port exhaustion by minimizing the creation of new sockets for every delete request under high load.
Key changes:
S3BlobContainer.java:
S3AsyncService.java:
S3RepositoryPlugin.java:
BlobStoreRepository.java:
Updated test classes to reflect the changes:
Removed references to the now obsolete async deletion setting in ClusterSettings.java
These changes should significantly improve the handling of delete operations in high-load scenarios, preventing port exhaustion and related issues by leveraging the existing async client more extensively.
Related Issues
Resolves #16883 (Port Exhaustion Causing Indexing Failures and Partial Snapshots)
Check List
[ ] API changes companion pull request created, if applicable.[ ] Public documentation issue/PR created, if applicable.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.