-
Notifications
You must be signed in to change notification settings - Fork 62
Open
Labels
Sled AgentRelated to the Per-Sled Configuration and ManagementRelated to the Per-Sled Configuration and Management
Description
Seen in #6453. The error path from InstanceRunner::propolis_ensure doesn't go down the same termination path as other methods of disposing of a Propolis zone (i.e. the InstanceRunner::terminate function):
omicron/sled-agent/src/instance.rs
Lines 1281 to 1296 in a24fa8c
| // If this instance started from scratch, and startup failed, move | |
| // the instance to the Failed state instead of leaking the Starting | |
| // state. | |
| // | |
| // Once again, migration targets don't do this, because a failure to | |
| // start a migration target simply leaves the VM running untouched | |
| // on the source. | |
| if migration_params.is_none() && setup_result.is_err() { | |
| error!(&self.log, "vmm setup failed: {:?}", setup_result); | |
| // This case is morally equivalent to starting Propolis and then | |
| // rudely terminating it before asking it to do anything. Update | |
| // the VMM and instance states accordingly. | |
| let mark_failed = false; | |
| self.state.terminate_rudely(mark_failed); | |
| } |
This means that sled agent won't collect zone bundles from Propolis zones that are torn down due to an instance start failure, which makes it hard to see what's going on. This cleanup path should be reconciled with the other Propolis zone cleanup paths.
Metadata
Metadata
Assignees
Labels
Sled AgentRelated to the Per-Sled Configuration and ManagementRelated to the Per-Sled Configuration and Management