Skip to content

Promote JobGetStuck into the pilot#1317

Merged
brandur merged 2 commits into
masterfrom
brandur-pilot-job-get-stuck
Jul 22, 2026
Merged

Promote JobGetStuck into the pilot#1317
brandur merged 2 commits into
masterfrom
brandur-pilot-job-get-stuck

Conversation

@brandur

@brandur brandur commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

While fixing up some bugs in the active rescue feature, I found that we
need to have slightly divergent variations of JobGetStuck for when the
rescuer is using the feature versus not.

It's possible to implement the variation entirely on the pro executor by
overriding JobGetStuck there, but doing so makes the code more
roundabout because you need to fetch an extra parameter off the pro
pilot. Things become more direct by instead making JobGetStuck a pilot
function and having two separate implementations, and this is also more
conventional elsewhere too.

While fixing up some bugs in the active rescue feature, I found that we
need to have slightly divergent variations of `JobGetStuck` for when the
rescuer is using the feature versus not.

It's possible to implement the variation entirely on the pro executor by
overriding `JobGetStuck` there, but doing so makes the code more
roundabout because you need to fetch an extra parameter off the pro
pilot. Things become more direct by instead making `JobGetStuck` a pilot
function and having two separate implementations, and this is also more
conventional elsewhere too.
@brandur
brandur requested a review from bgentry July 21, 2026 00:27
Active-rescue pilots need to distinguish ordinary age-based rescue from newer jobs selected using producer liveness. Carry the batch's selection horizon into JobRescueMany so guarded updates can preserve standard rescue behavior.
@brandur

brandur commented Jul 21, 2026

Copy link
Copy Markdown
Contributor Author

Also added one extra commit here for passing a stuck horizon down into the function. This was needed to fix another bug Codex identified in the active job rescue branch. It's a pretty small change though.

@brandur

brandur commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

Thanks!

@brandur
brandur merged commit 89cdc01 into master Jul 22, 2026
15 checks passed
@brandur
brandur deleted the brandur-pilot-job-get-stuck branch July 22, 2026 18:31
brandur added a commit that referenced this pull request Jul 23, 2026
…immediate pro release (#1325)

In #1317 we added some new functions to the pilot to make the active job
rescue system work.

I was thinking this morning that the way this was done is a little
suboptimal for our pro customers. Expanding the pilot interface makes
the pro pilot immediately incompatible, so once we released this we'd
need to make sure to do an _immediate_ fast follow with a pro release,
otherwise there'd be no compatible version. And even with that fast
follow, if a customer tried to upgrade just River by itself, it'd break
their pro version without an upgrade.

Here, move the new functions into a special `PilotJobRescuer` interface
that's used where available by the rescuer, but allows a fall back in
case it's not. This will let us release the pro side at our leisure and
there will be multiple compatible River releases by then.

We'd want to unwind this eventually, so I left a couple comments in
place with instructions on how to do that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants