unit: add jobs that should be dispatched later back to run_queue#21524
unit: add jobs that should be dispatched later back to run_queue#21524msekletar wants to merge 1 commit intosystemd:mainfrom
Conversation
14df643 to
bd6eb7b
Compare
|
Silly mistake, I should have checked once more before pushing. Sorry about that. Anyway, should be fixed now. @poettering PTAL. |
|
lgtm, just one nit |
bd6eb7b to
64ec2c3
Compare
|
Bad news, this doesn't fix the issue :-( focal-s390x: |
Assumption in edc027b was that job we first skipped because of active ratelimit is still in run_queue. Hence we trigger the queue and dispatch it in the next iteration. Actually we remove jobs from run_queue in job_run_and_invalidate() before we call unit_start(). Hence if we want to attempt to run the job again in the future we need to add it back to run_queue. Fixes systemd#21458
64ec2c3 to
5ca1ebb
Compare
|
looks like the ubuntu CI infrastructure is having issues |
|
I'll give it a try locally, for now, just to see if it indeed helps. |
|
It hasn't failed after 200+ iterations (whereas before it failed in <10 iterations), so it looks like the patch indeed works. But let's wait for the Ubuntu CIs to come back to life for extra measure. |
| continue; | ||
|
|
||
| job_add_to_run_queue(j); | ||
| } |
There was a problem hiding this comment.
I think we can safely dumb this down: simply enqueue any job for a mount unit again, regardless what it is. Adding something to the queue can basically be done on a hunch, there's no need to guarantee that anything really changed. Hence, I'd really enqueue any job for a mount unit without trying to be too smart here. It's not that this is going to be a million things, it's just a small number, and it makes things really robust.
|
I posted a dumbed down version of this PR: #21543 |
|
Superseded by #21543. |
Assumption in edc027b was that job we first skipped because of active
ratelimit is still in run_queue. Hence we trigger the queue and dispatch
it in the next iteration. Actually we remove jobs from run_queue in
job_run_and_invalidate() before we call unit_start(). Hence if we want
to attempt to run the job again in the future we need to add it back
to run_queue.
Fixes #21458