-
Notifications
You must be signed in to change notification settings - Fork 124
RSDK-11248 Disable restart checking logic with new agents and update restart_status endpoint #5324
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
base: main
Are you sure you want to change the base?
RSDK-11248 Disable restart checking logic with new agents and update restart_status endpoint #5324
Conversation
web/cmd/droid/droid.go
Outdated
// NOTE(benjirewis): In RSDK-11248, we removed the restart checking logic from | ||
// viam-server and put it in viam-agent. This method used to set a flag used by restart | ||
// checking logic, but since that no longer exists and we have no users of this droid | ||
// code, we no longer support this method. |
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.
cc @abe-winter since we discussed this offline.
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.
sgtm!
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.
I remember you mentioned one of the cases we had to consider was a newer server running under an older agent that doesn't support restarts. From the looks of this we decided not to support that case? That seems totally reasonable, and if so then LGTM.
Correct; see this comment on the agent PR. |
// | ||
// TODO(RSDK-12057): Remove sensitivity to this environment variable once we fully | ||
// remove all NeedsRestart checking logic from viam-server. | ||
ViamAgentHandlesNeedsRestartChecking = "VIAM_AGENT_HANDLES_NEEDS_RESTART_CHECKING" |
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.
We now continue to handle checking NeedsRestart
in a background goroutine in the server if VIAM_AGENT_HANDLES_NEEDS_RESTART_CHECKING
is unset (newer versions of agent will set it unconditionally when launching viam-server
). It was determined offline that we do want to support old-agent/new-server setups for a while, and eventually completely remove needs restart checking functionality from the rdk
with RSDK-12057.
Thanks to @jmatth for the env var idea 🎉 .
func DroidStopHook() { //nolint:revive | ||
server.ForceRestart = true | ||
// We have no users of this droid code, so we no longer support this method. | ||
logger.Error("DroidStopHook is no longer supported") |
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.
@abe-winter we're not actually removing needs restart checking functionality from viam-server
yet, but we will in RSDK-12057. So I don't get confused later, I'm still going to remove the ForceRestart
flag and its setting above now if that SGTY.
RSDK-11248
Disables restart checking logic (to be added to agent with viamrobotics/agent#153) when
viam-agent
is runningviam-server
and sets a particular environment variable. Updates therestart_status
endpoint to consistently reportdoes_not_handle_needs_restart: true
in the served JSON (to be used by agent to determine whether the runningviam-server
is new enough to not handle restart checking logic).