Skip to content

Commit 745dfbc

Browse files
authored
[ws-daemon] Closing grpc server and daemon socket (#3824)
1 parent 7f3ba1c commit 745dfbc

File tree

1 file changed

+12
-5
lines changed
  • components/ws-daemon/pkg/iws

1 file changed

+12
-5
lines changed

components/ws-daemon/pkg/iws/iws.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,17 @@ func ServeWorkspace(uidmapper *Uidmapper, fsshift api.FSShiftMethod) func(ctx co
9696
}
9797

9898
// StopServingWorkspace stops a previously started workspace server
99-
func StopServingWorkspace(ctx context.Context, ws *session.Workspace) error {
99+
func StopServingWorkspace(ctx context.Context, ws *session.Workspace) (err error) {
100+
//nolint:ineffassign
101+
span, ctx := opentracing.StartSpanFromContext(ctx, "iws.StopServingWorkspace")
102+
defer tracing.FinishSpan(span, &err)
103+
100104
rawStop, ok := ws.NonPersistentAttrs[session.AttrWorkspaceServer]
101105
if !ok {
102106
return nil
103107
}
104108

105-
stopFn, ok := rawStop.(context.CancelFunc)
109+
stopFn, ok := rawStop.(func())
106110
if !ok {
107111
return nil
108112
}
@@ -142,11 +146,14 @@ func (wbs *InWorkspaceServiceServer) Start() error {
142146
if err != nil {
143147
return xerrors.Errorf("cannot create IWS socket: %w", err)
144148
}
149+
145150
err = os.Chmod(socketFN, 0777)
146151
if err != nil {
147152
return xerrors.Errorf("cannot chmod IWS socket: %w", err)
148153
}
149154

155+
wbs.sckt = sckt
156+
150157
limits := ratelimitingInterceptor{
151158
"/iws.InWorkspaceService/PrepareForUserNS": ratelimit{
152159
UseOnce: true,
@@ -159,10 +166,10 @@ func (wbs *InWorkspaceServiceServer) Start() error {
159166
},
160167
}
161168

162-
srv := grpc.NewServer(grpc.ChainUnaryInterceptor(limits.UnaryInterceptor()))
163-
api.RegisterInWorkspaceServiceServer(srv, wbs)
169+
wbs.srv = grpc.NewServer(grpc.ChainUnaryInterceptor(limits.UnaryInterceptor()))
170+
api.RegisterInWorkspaceServiceServer(wbs.srv, wbs)
164171
go func() {
165-
err := srv.Serve(sckt)
172+
err := wbs.srv.Serve(sckt)
166173
if err != nil {
167174
log.WithError(err).WithFields(wbs.Session.OWI()).Error("IWS server failed")
168175
}

0 commit comments

Comments
 (0)