-
Notifications
You must be signed in to change notification settings - Fork 24.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
Synchronize WriteReplicaResult callbacks #36770
Synchronize WriteReplicaResult callbacks #36770
Conversation
Pinging @elastic/es-distributed |
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. We discussed potential performance implications via another channel and concluded this is ok.
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 - Great catch!
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.
good catch
@elasticmachine run the gradle build tests 1 |
TransportWriteAction.WriteReplicaResult is not properly synchronized, which can lead to a data race between the thread that calls respond and the AsyncAfterWriteAction that calls either onSuccess or onFailure. This data race results in the response listener not being called, which ultimately results in a stuck replication task on the replica.
TransportWriteAction.WriteReplicaResult is not properly synchronized, which can lead to a data race between the thread that calls respond and the AsyncAfterWriteAction that calls either onSuccess or onFailure. This data race results in the response listener not being called, which ultimately results in a stuck replication task on the replica.
* elastic/master: (31 commits) enable bwc tests and switch transport serialization version to 6.6.0 for CAS features [DOCs] Adds ml-cpp PRs to alpha release notes (elastic#36790) Synchronize WriteReplicaResult callbacks (elastic#36770) Add CcrRestoreSourceService to track sessions (elastic#36578) [Painless] Add tests for boxed return types (elastic#36747) Internal: Remove originalSettings from Node (elastic#36569) [ILM][DOCS] Update ILM API authorization docs (elastic#36749) Core: Deprecate use of scientific notation in epoch time parsing (elastic#36691) [ML] Merge the Jindex master feature branch (elastic#36702) Tests: Mute SnapshotDisruptionIT.testDisruptionOnSnapshotInitialization Update versions in SearchSortValues transport serialization Update version in SearchHits transport serialization [Geo] Integrate Lucene's LatLonShape (BKD Backed GeoShapes) as default `geo_shape` indexing approach (elastic#36751) [Docs] Fix error in Common Grams Token Filter (elastic#36774) Fix rollup search statistics (elastic#36674) SQL: Fix wrong appliance of StackOverflow limit for IN (elastic#36724) [TEST] Added more logging Invalidate Token API enhancements - HLRC (elastic#36362) Deprecate types in index API (elastic#36575) Disable bwc tests until elastic#36555 backport is complete (elastic#36737) ...
TransportWriteAction.WriteReplicaResult
is not properly synchronized, which can lead to a data race between the thread that callsrespond
and theAsyncAfterWriteAction
that calls eitheronSuccess
oronFailure
. This data race results in the response listener not being called, which ultimately results in a stuck replication task on the replica.