-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
[Backport 5.4] row cache: do_update: abort on execute error #16256
[Backport 5.4] row cache: do_update: abort on execute error #16256
Conversation
…y Halevy Currently the cache updaters aren't exception safe yet they are intended to be. Instead of allowing exceptions from `external_updater::execute` escape `row_cache::update`, abort using `on_fatal_internal_error`. Future changes should harden all `execute` implementations to effectively make them `noexcept`, then the pure virtual definition can be made `noexcept` to cement that. \Fixes scylladb#15576 \Closes scylladb#15577 * github.com:scylladb/scylladb: row_cache: abort on exteral_updater::execute errors row_cache: do_update: simplify _prev_snapshot_pos setup (cherry picked from commit 4a0f164)
CI state |
Is this fixing a regression? |
No, it was like that for ages. |
Agree |
…y Halevy Currently the cache updaters aren't exception safe yet they are intended to be. Instead of allowing exceptions from `external_updater::execute` escape `row_cache::update`, abort using `on_fatal_internal_error`. Future changes should harden all `execute` implementations to effectively make them `noexcept`, then the pure virtual definition can be made `noexcept` to cement that. \Fixes #15576 \Closes #15577 * github.com:scylladb/scylladb: row_cache: abort on exteral_updater::execute errors row_cache: do_update: simplify _prev_snapshot_pos setup (cherry picked from commit 4a0f164) Closes #16256
Looks like next-5.4 was not triggered, by this merge. |
@denesb looking into it |
@denesb Fixed. probably caused by the Jenkins issues we faced yesterday. going over all releases to make sure they are working |
@denesb please merge |
…y Halevy Currently the cache updaters aren't exception safe yet they are intended to be. Instead of allowing exceptions from `external_updater::execute` escape `row_cache::update`, abort using `on_fatal_internal_error`. Future changes should harden all `execute` implementations to effectively make them `noexcept`, then the pure virtual definition can be made `noexcept` to cement that. \Fixes #15576 \Closes #15577 * github.com:scylladb/scylladb: row_cache: abort on exteral_updater::execute errors row_cache: do_update: simplify _prev_snapshot_pos setup (cherry picked from commit 4a0f164) Closes #16256
Currently the cache updaters aren't exception safe
yet they are intended to be.
Instead of allowing exceptions from
external_updater::execute
escaperow_cache::update
,abort using
on_fatal_internal_error
.Future changes should harden all
execute
implementationsto effectively make them
noexcept
, then the pure virtualdefinition can be made
noexcept
to cement that.\Fixes #15576
\Closes #15577
row_cache: abort on exteral_updater::execute errors
row_cache: do_update: simplify _prev_snapshot_pos setup
(cherry picked from commit 4a0f164)