-
Notifications
You must be signed in to change notification settings - Fork 558
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
Don't mutate state through JobBackoffChecker
#13041
Labels
component/engine
kind/bug
Categorizes an issue or PR as a bug
version:8.3.0-alpha4
Marks an issue as being completely or in parts released in 8.3.0-alpha4
version:8.3.0
Marks an issue as being completely or in parts released in 8.3.0
Comments
lenaschoenburg
added
kind/bug
Categorizes an issue or PR as a bug
component/engine
labels
Jun 9, 2023
zeebe-bors-camunda bot
added a commit
that referenced
this issue
Jul 14, 2023
13402: fix(engine): don't mutate state when checking for job backoffs r=oleschoenburg a=oleschoenburg Remove sneaky state mutation when visiting jobs with expired backoffs. Instead, reliably cleanup backoff when recurring or deleting the job. When a backoff is found again before the first `RECUR_AFTER_BACKOFF` command is processed, another `RECUR_AFTER_BACKOFF` command is written. This is okay because on processing, we ignore jobs that no longer exist or that have a newer recurring time set. Closes #13041 Co-authored-by: Ole Schönburg <ole.schoenburg@gmail.com>
zeebe-bors-camunda bot
added a commit
that referenced
this issue
Jul 14, 2023
13402: fix(engine): don't mutate state when checking for job backoffs r=oleschoenburg a=oleschoenburg Remove sneaky state mutation when visiting jobs with expired backoffs. Instead, reliably cleanup backoff when recurring or deleting the job. When a backoff is found again before the first `RECUR_AFTER_BACKOFF` command is processed, another `RECUR_AFTER_BACKOFF` command is written. This is okay because on processing, we ignore jobs that no longer exist or that have a newer recurring time set. Closes #13041 Co-authored-by: Ole Schönburg <ole.schoenburg@gmail.com>
zeebe-bors-camunda bot
added a commit
that referenced
this issue
Jul 14, 2023
13402: fix(engine): don't mutate state when checking for job backoffs r=oleschoenburg a=oleschoenburg Remove sneaky state mutation when visiting jobs with expired backoffs. Instead, reliably cleanup backoff when recurring or deleting the job. When a backoff is found again before the first `RECUR_AFTER_BACKOFF` command is processed, another `RECUR_AFTER_BACKOFF` command is written. This is okay because on processing, we ignore jobs that no longer exist or that have a newer recurring time set. Closes #13041 Co-authored-by: Ole Schönburg <ole.schoenburg@gmail.com>
megglos
added
the
version:8.3.0-alpha4
Marks an issue as being completely or in parts released in 8.3.0-alpha4
label
Aug 2, 2023
lenaschoenburg
added a commit
that referenced
this issue
Aug 14, 2023
After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state. The fixes for #13041 and #13041 ensured that deadlines and backoffs are not removed ad-hoc whenever the job no longer exists. These two new migrations ensure that
lenaschoenburg
added a commit
that referenced
this issue
Aug 14, 2023
After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state.
zeebe-bors-camunda bot
added a commit
that referenced
this issue
Aug 15, 2023
13886: fix(engine): cleanup orphaned job timeouts and backoffs on migration r=koevskinikola a=oleschoenburg After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state. closes #13881 Co-authored-by: Ole Schönburg <ole.schoenburg@gmail.com> Co-authored-by: Meggle (Sebastian Bathke) <sebastian.bathke@camunda.com>
lenaschoenburg
added a commit
that referenced
this issue
Aug 15, 2023
After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state. (cherry picked from commit 1d82e6e)
lenaschoenburg
added a commit
that referenced
this issue
Aug 15, 2023
After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state. (cherry picked from commit 1d82e6e)
lenaschoenburg
added a commit
that referenced
this issue
Aug 15, 2023
After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state. (cherry picked from commit 1d82e6e)
lenaschoenburg
added a commit
that referenced
this issue
Aug 15, 2023
After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state. (cherry picked from commit 1d82e6e)
lenaschoenburg
added a commit
that referenced
this issue
Aug 15, 2023
After an update from a previous version, both backoff and deadline column families might contain entries without a corresponding job or multiple entries for a single job. Before fixing #12797 and #13041, these were cleaned up ad-hoc whenever they were found. This is no longer the case because we now prevent the creation of duplicated entries and always cleanup properly. This adds two necessary migrations that remove orphaned entries that were left by a previous version. The migrations run once and walk through all deadline and backoff entries, removing those without a job and duplicates which don't match the current job state. (cherry picked from commit 1d82e6e)
megglos
added
the
version:8.3.0
Marks an issue as being completely or in parts released in 8.3.0
label
Oct 5, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
component/engine
kind/bug
Categorizes an issue or PR as a bug
version:8.3.0-alpha4
Marks an issue as being completely or in parts released in 8.3.0-alpha4
version:8.3.0
Marks an issue as being completely or in parts released in 8.3.0
Similar to #12797, the
JobBackoffChecker
also tries to cleanup backoffs:https://github.com/camunda/zeebe/blob/d166007d8fee3fa6f112367ea595d35199807f4f/engine/src/main/java/io/camunda/zeebe/engine/state/instance/DbJobState.java#L308-L317
The text was updated successfully, but these errors were encountered: