-
Notifications
You must be signed in to change notification settings - Fork 625
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
Safely handle flush exceptions in Raft #15463
Labels
component/zeebe
Related to the Zeebe component/team
kind/bug
Categorizes an issue or PR as a bug
likelihood/high
A recurring issue
likelihood/low
Observed rarely / rather unlikely edge-case
planning/discuss
To be discussed at the next planning.
severity/high
Marks a bug as having a noticeable impact on the user with no known workaround
version:8.7.0-alpha2
Labal that represents features released with 8.7.0-alpha2
Comments
npepinpe
added
kind/bug
Categorizes an issue or PR as a bug
severity/critical
Marks a stop-the-world bug, with a high impact and no existing workaround
severity/high
Marks a bug as having a noticeable impact on the user with no known workaround
likelihood/low
Observed rarely / rather unlikely edge-case
likelihood/high
A recurring issue
and removed
severity/critical
Marks a stop-the-world bug, with a high impact and no existing workaround
labels
Dec 5, 2023
I've put both high and low likelihood, since:
|
ZDP-Planning:
|
entangled90
added a commit
that referenced
this issue
Nov 7, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 7, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 7, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 12, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 12, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 12, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 13, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 13, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 13, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
entangled90
added a commit
that referenced
this issue
Nov 15, 2024
All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class CheckedJournalException has been created, since JournalException extends RuntimeException. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. closes #15463
github-merge-queue bot
pushed a commit
that referenced
this issue
Nov 15, 2024
## Description All flush() commands in the journal module now can throw a checked exception FlushException, in order to make sure that all possible exceptions thrown when flushing are handled. A new class `CheckedJournalException` has been created, since `JournalException` extends `RuntimeException`, thus it would not be a checked exception. Using `Either<Throwable,Void>` was also taken into consideration as a first approach, but I was afraid that it was likely that a left either value could be easily discarded as a return value by mistake, while this is not possible with checked exception. This also means that using checked exception "pollutes" a lot the code so the idea is to use them only in critical parts of the code when we must ensure that exceptions are handled properly. When the leader fails to flush, it resets its commitIndex to the previous value and transitions to the Follower role. <!-- Describe the goal and purpose of this PR. --> ## Related issues closes #15463
npepinpe
added
the
version:8.7.0-alpha2
Labal that represents features released with 8.7.0-alpha2
label
Dec 4, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
component/zeebe
Related to the Zeebe component/team
kind/bug
Categorizes an issue or PR as a bug
likelihood/high
A recurring issue
likelihood/low
Observed rarely / rather unlikely edge-case
planning/discuss
To be discussed at the next planning.
severity/high
Marks a bug as having a noticeable impact on the user with no known workaround
version:8.7.0-alpha2
Labal that represents features released with 8.7.0-alpha2
Originally posted by @npepinpe in #14843 (comment)
The text was updated successfully, but these errors were encountered: