-
Notifications
You must be signed in to change notification settings - Fork 567
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
InFlightLongPollingActivateJobsRequestsState#activeRequestsToBeRepeated
contains duplicates
#8390
Labels
kind/bug
Categorizes an issue or PR as a bug
scope/gateway
Marks an issue or PR to appear in the gateway section of the changelog
Comments
This was referenced Dec 14, 2021
Closed
Moving back to the |
This was referenced Dec 20, 2021
Merged
ghost
pushed a commit
that referenced
this issue
Dec 20, 2021
8436: [Backport/stable 1.2] Fix ZeebePartition can be closed when there are ongoing transitions r=deepthidevaki a=deepthidevaki Backport of #8344 closes #7981 Due to merge conflicts, the commits that refactored the code are not backported. 8454: [Backport stable/1.2] fix(polling/state): prevent duplicates in repeatable requests list r=oleschoenburg a=github-actions[bot] # Description Backport of #8392 to `stable/1.2`. relates to #8310 #8390 Co-authored-by: Deepthi Devaki Akkoorath <deepthidevaki@gmail.com> Co-authored-by: Roman <roman.smirnov@camunda.com>
ghost
pushed a commit
that referenced
this issue
Dec 20, 2021
This issue was closed.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
kind/bug
Categorizes an issue or PR as a bug
scope/gateway
Marks an issue or PR to appear in the gateway section of the changelog
Describe the bug
See description in #8310:
Scenario 1: Duplicates in
activeRequestsToBeRepeated
when other requests succeedsGiven three activate requests
x
,y
, andz
:z
to broker -> currentactiveRequests = [ z ]
andactiveRequestsToBeRepeated = [ ]
y
to broker -> currentactiveRequests = [ z, y ]
andactiveRequestsToBeRepeated = [ ]
x
to broker -> currentactiveRequests = [ z, y, x ]
andactiveRequestsToBeRepeated = [ ]
z
completes with at least one activated job -> reset failed attempts -> currentactiveRequests = [ y, x ]
andactiveRequestsToBeRepeated = [ y, x ]
y
completes with at least one activated job -> reset failed attempts -> currentactiveRequests = [ x ]
andactiveRequestsToBeRepeated = [ x, x ]
Scenario 2: Duplicates in
activeRequestsToBeRepeated
on multiple notificationsGiven is a request
x
:x
to broker -> currentactiveRequests = [ x ]
andactiveRequestsToBeRepeated = [ ]
activeRequests = [ x ]
andactiveRequestsToBeRepeated = [ x ]
activeRequests = [ x ]
andactiveRequestsToBeRepeated = [ x, x ]
Scenario 3: Another request wins
Given are requests
[z1, z2, z3, ...., zn]
andx
:[z1, z2, z3, ...., zn]
andx
-> currentactiveRequests = [ z1, z2, z3, ...., zn, x ] and
activeRequestsToBeRepeated = [ ]`z1
completes with at least one activated job -> reset failed attempts -> currentactiveRequests = [ z2, z3, ...., zn, x ]
andactiveRequestsToBeRepeated = [ z2, z3, ...., zn, x ]
x
completes without any jobs -> retry request -> currentactiveRequests = [ z2, z3, ...., zn, x ]
andactiveRequestsToBeRepeated = [ z2, z3, ...., zn ]
z2
completes with at least one activated job -> reset failed attempts -> currentactiveRequests = [ z3, ...., zn, x ]
andactiveRequestsToBeRepeated = [ z3, ...., zn, x ]
x
completes without any jobs -> retry request -> currentactiveRequests = [ z3, ...., zn, x ]
andactiveRequestsToBeRepeated = [ z2, z3, ...., zn ]
In all scenarios, the queue
activeRequestsToBeRepeated
contains the requestx
at least once before the response arrives. In a nutshell, as long as the failed attempts are lower than the configured threshold and the requestx
is present in the queue of repeatable requests, the requestx
is executed in a loop when it responds with any activated job.Expected behavior
InFlightLongPollingActivateJobsRequestsState#activeRequestsToBeRepeated
does not contain duplicatesEnvironment:
is depended on by #8310
The text was updated successfully, but these errors were encountered: