Skip to content

Commit 020d347

Browse files
committed
fuse manager: Ensure cleanup by moving it to the main routine
Signed-off-by: Kohei Tokunaga <[email protected]>
1 parent 0270add commit 020d347

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

fusemanager/fusemanager.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -201,19 +201,24 @@ func runFuseManager(ctx context.Context) error {
201201

202202
pb.RegisterStargzFuseManagerServiceServer(server, fm)
203203

204-
sigCh := make(chan os.Signal, 1)
205-
signal.Notify(sigCh, unix.SIGINT, unix.SIGTERM)
204+
errCh := make(chan error, 1)
206205
go func() {
207-
sig := <-sigCh
208-
log.G(ctx).Infof("Got %v", sig)
209-
fm.server.Stop()
210-
os.Remove(address)
206+
if err := server.Serve(l); err != nil {
207+
errCh <- fmt.Errorf("error on serving via socket %q: %w", address, err)
208+
}
211209
}()
212210

213-
if err = server.Serve(l); err != nil {
214-
return fmt.Errorf("failed to serve fuse manager: %w", err)
211+
var s os.Signal
212+
sigCh := make(chan os.Signal, 1)
213+
signal.Notify(sigCh, unix.SIGINT, unix.SIGTERM)
214+
select {
215+
case s = <-sigCh:
216+
log.G(ctx).Infof("Got %v", s)
217+
case err := <-errCh:
218+
log.G(ctx).WithError(err).Warnf("error during running the server")
215219
}
216220

221+
server.Stop()
217222
if err = fm.Close(ctx); err != nil {
218223
return fmt.Errorf("failed to close fuse manager: %w", err)
219224
}

0 commit comments

Comments
 (0)