When RunningZone objects are dropped, for whatever reason, the underlying zone is halted and removed:
|
impl Drop for RunningZone { |
|
fn drop(&mut self) { |
|
match Zones::halt_and_remove_logged(&self.inner.log, self.name()) { |
|
Ok(()) => { |
|
info!(self.inner.log, "Stopped and uninstalled zone") |
|
} |
|
Err(e) => { |
|
warn!(self.inner.log, "Failed to stop zone: {}", e) |
|
} |
|
} |
|
} |
|
} |
This if often the case when:
- We attempt to boot a zone, but it fails to start
- A zone instance is destroyed
This helps prevent leakage of resources, but limits inspection of "why the zone died, and what it was up to".
It would be useful to extract log information from zones into a "service bundle" before we destroy the underlying zone.
When
RunningZoneobjects are dropped, for whatever reason, the underlying zone is halted and removed:omicron/sled-agent/src/illumos/running_zone.rs
Lines 310 to 321 in 50c6ce1
This if often the case when:
This helps prevent leakage of resources, but limits inspection of "why the zone died, and what it was up to".
It would be useful to extract log information from zones into a "service bundle" before we destroy the underlying zone.