-
Notifications
You must be signed in to change notification settings - Fork 3.6k
fix: Avoid start of ShardedDaemonProcess for old revision #32850
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
Conversation
patriknw
commented
Nov 25, 2025
- when rescaling the revision is bumped, and all previous processes are stopped
- if a keep-alive message is in flight that can trigger a new start of a process that belongs to the previous revision, because the revision check was using local read consistency
- change to use same consistency as the ShardedDaemonProcessCoordinator
* when rescaling the revision is bumped, and all previous processes are stopped * if a keep-alive message is in flight that can trigger a new start of a process that belongs to the previous revision, because the revision check was using local read consistency * change to use same consistency as the ShardedDaemonProcessCoordinator
4e6dd6b to
9e7c9e9
Compare
| def apply(id: Int): Behavior[Command] = Behaviors.setup { ctx => | ||
| ctx.log.info("Started [{}]", id) | ||
| val snitchRouter = ctx.spawn(Routers.group(SnitchServiceKey), "router") | ||
| snitchRouter ! ProcessActorEvent(id, "Started") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not reliable, sometimes dead letters. I have to find a better way to collect these events.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why would it drop messages?
aludwiko
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
octonato
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LTGM, with a question...
| def apply(id: Int): Behavior[Command] = Behaviors.setup { ctx => | ||
| ctx.log.info("Started [{}]", id) | ||
| val snitchRouter = ctx.spawn(Routers.group(SnitchServiceKey), "router") | ||
| snitchRouter ! ProcessActorEvent(id, "Started") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why would it drop messages?
johanandren
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix looks good.
Not good idea why the group router would drop messages.
|
draft until the test is solid |
|
I'll improve the test in a separate follow up PR. We have confirmed this in running systems |