-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Fix exception handling in S3 compareAndExchangeRegister
#138488
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
Fix exception handling in S3 compareAndExchangeRegister
#138488
Conversation
In elastic#138422 we shifted the exception handling for `compareAndExchangeRegister` into its `run()` method, but this introduced a subtle bug: an `AwsServiceException` may be thrown synchronously, bypassing the handling added to the listener with the `delegateResponse` call. This commit reinstates the missing exception handling.
|
Pinging @elastic/es-distributed-coordination (Team:Distributed Coordination) |
joshua-adams-1
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - how did you discover this change in behaviour? Since #138422 passed CI, I assume there wasn't a test failure. Is it worth adding one in a follow up PR?
|
It causes a failure of |
|
What's the LOE in adding a unit test to mock the |
…-json * upstream/main: (247 commits) Mute org.elasticsearch.xpack.inference.integration.SemanticTextIndexOptionsIT testValidateIndexOptionsWithBasicLicense elastic#138513 Mute org.elasticsearch.xpack.esql.heap_attack.HeapAttackLookupJoinIT testLookupExplosionBigString elastic#138510 This shouldn't be zero (elastic#138501) sum of empty histogram is now null (elastic#138378) Test ES|QL bfloat16 support (elastic#138499) Fix exception handling in S3 `compareAndExchangeRegister` (elastic#138488) Mute org.elasticsearch.xpack.exponentialhistogram.ExponentialHistogramFieldMapperTests testFormattedDocValues elastic#138504 Mute org.elasticsearch.ingest.geoip.IngestGeoIpClientYamlTestSuiteIT test {yaml=ingest_geoip/60_ip_location_databases/Test adding, getting, and removing ip location databases} elastic#138502 ESQL: Refactor HeapAttackIT (elastic#138432) [Inference API] Add ElasticInferenceServiceDenseTextEmbeddingsServiceSettings to InferenceNamedWriteablesProvider (elastic#138484) Store split indices (elastic#138396) ES|QL Update CHUNK to support chunking_settings as optional argument (elastic#138123) Extract common blob-update logic in `S3HttpHandler` (elastic#138490) Cleanup esql request building api (elastic#138398) Round sum and avg in exponential_histogram CSV tests (elastic#138472) ESQL: load exponential_histogram total count as double instead of long (elastic#138417) [SIMD] Use fixed width native types for better Java interoperability (elastic#138429) Do not use Min or Max as Top's surrogate when there is an outputField (elastic#138380) ES|QL: Fix generative tests (elastic#138478) Mute org.elasticsearch.xpack.inference.integration.AuthorizationTaskExecutorIT testCreatesEisChatCompletion_DoesNotRemoveEndpointWhenNoLongerAuthorized elastic#138480 ...
In #138422 we shifted the exception handling for
compareAndExchangeRegisterinto itsrun()method, but thisintroduced a subtle bug: an
AwsServiceExceptionmay be thrownsynchronously, bypassing the handling added to the listener with the
delegateResponsecall. This commit reinstates the missing exceptionhandling.