@@ -81,12 +81,6 @@ func main() {
8181
8282 runner := runners .NewLocalRunner (cfg .Provision .UseSudo )
8383
84- pm := pool .NewPoolManager (& cfg .PoolManager , runner )
85- if err = pm .ReloadPools (); err != nil {
86- log .Err (err .Error ())
87- return
88- }
89-
9084 internalNetworkID , err := networks .Setup (ctx , docker , engProps .InstanceID , engProps .ContainerName )
9185 if err != nil {
9286 log .Errf (err .Error ())
@@ -107,21 +101,17 @@ func main() {
107101 DBName : cfg .Global .Database .Name (),
108102 }
109103
110- emergencyShutdown := func () {
111- cancel ()
112-
113- shutdownCtx , shutdownCancel := context .WithTimeout (context .Background (), shutdownTimeout )
114- defer shutdownCancel ()
115-
116- shutdownDatabaseLabEngine (shutdownCtx , docker , engProps , pm .First ().Pool ())
117- }
118-
119104 tm , err := telemetry .New (cfg .Global , engProps )
120105 if err != nil {
121106 log .Errf (errors .WithMessage (err , "failed to initialize a telemetry service" ).Error ())
122107 return
123108 }
124109
110+ pm := pool .NewPoolManager (& cfg .PoolManager , runner )
111+ if err = pm .ReloadPools (); err != nil {
112+ log .Err (err .Error ())
113+ }
114+
125115 // Create a new retrieval service to prepare a data directory and start snapshotting.
126116 retrievalSvc := retrieval .New (cfg , engProps , docker , pm , tm , runner )
127117
@@ -133,6 +123,15 @@ func main() {
133123
134124 observingChan := make (chan string , 1 )
135125
126+ emergencyShutdown := func () {
127+ cancel ()
128+
129+ shutdownCtx , shutdownCancel := context .WithTimeout (context .Background (), shutdownTimeout )
130+ defer shutdownCancel ()
131+
132+ shutdownDatabaseLabEngine (shutdownCtx , docker , engProps , pm .First ())
133+ }
134+
136135 cloningSvc := cloning .NewBase (& cfg .Cloning , provisioner , tm , observingChan )
137136 if err = cloningSvc .Run (ctx ); err != nil {
138137 log .Err (err )
@@ -193,7 +192,7 @@ func main() {
193192 log .Msg (err )
194193 }
195194
196- shutdownDatabaseLabEngine (shutdownCtx , docker , engProps , pm .First (). Pool () )
195+ shutdownDatabaseLabEngine (shutdownCtx , docker , engProps , pm .First ())
197196 cloningSvc .SaveClonesState ()
198197 tm .SendEvent (context .Background (), telemetry .EngineStoppedEvent , telemetry.EngineStopped {Uptime : server .Uptime ()})
199198}
@@ -292,11 +291,13 @@ func setShutdownListener() chan os.Signal {
292291 return c
293292}
294293
295- func shutdownDatabaseLabEngine (ctx context.Context , dockerCLI * client.Client , engProps global.EngineProps , fsp * resources. Pool ) {
294+ func shutdownDatabaseLabEngine (ctx context.Context , dockerCLI * client.Client , engProps global.EngineProps , fsm pool. FSManager ) {
296295 log .Msg ("Stopping auxiliary containers" )
297296
298- if err := cont .StopControlContainers (ctx , dockerCLI , engProps .InstanceID , fsp .DataDir ()); err != nil {
299- log .Err ("Failed to stop control containers" , err )
297+ if fsm != nil {
298+ if err := cont .StopControlContainers (ctx , dockerCLI , engProps .InstanceID , fsm .Pool ().DataDir ()); err != nil {
299+ log .Err ("Failed to stop control containers" , err )
300+ }
300301 }
301302
302303 if err := cont .CleanUpSatelliteContainers (ctx , dockerCLI , engProps .InstanceID ); err != nil {
0 commit comments