File tree 2 files changed +9
-5
lines changed
bin/propolis-server/src/lib/vm
2 files changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -332,7 +332,7 @@ impl ExternalRequestQueue {
332
332
// its state are ignored.
333
333
//
334
334
// Requests to change Crucible volume configuration can still be
335
- // queued if they were previously alloewd . This allows the state
335
+ // queued if they were previously allowed . This allows the state
336
336
// driver to accept VCR mutations that are needed to allow an
337
337
// activation to complete even if the instance is slated to stop
338
338
// immediately after starting.
Original file line number Diff line number Diff line change @@ -644,14 +644,18 @@ impl StateDriver {
644
644
biased;
645
645
646
646
res = & mut block_backend_fut => {
647
+ // If the VM started up successfully, publish that it is
648
+ // running and queue up any external requests that were
649
+ // deferred while startup was ongoing.
650
+ //
651
+ // If startup failed, just return the error without changing
652
+ // any state or processing any additional requests. The
653
+ // caller will move the instance to the appropriate terminal
654
+ // state and clean up the VM as needed.
647
655
if res. is_ok( ) {
648
656
let objects = & self . objects;
649
657
objects. lock_exclusive( ) . await . resume_vcpus( ) ;
650
658
self . publish_steady_state( InstanceState :: Running ) ;
651
-
652
- // If a stop request was seen while in the startup
653
- // sequence, self-request a stop for the main event
654
- // loop to handle.
655
659
if stopped_while_starting {
656
660
self . input_queue. push_self_request(
657
661
ExternalRequest :: Stop
You can’t perform that action at this time.
0 commit comments