Skip to content

Commit 4a14c52

Browse files
committed
[supervisor] fix leaking docker sockets
1 parent 26070eb commit 4a14c52

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

components/supervisor/go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ require (
2424
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
2525
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3
2626
github.com/improbable-eng/grpc-web v0.14.0
27-
github.com/mailru/easygo v0.0.0-20190618140210-3c14a0dc985f
2827
github.com/prometheus/client_golang v1.14.0
2928
github.com/prometheus/client_model v0.3.0
3029
github.com/prometheus/common v0.42.0
@@ -116,6 +115,7 @@ require (
116115
github.com/mitchellh/go-homedir v1.1.0 // indirect
117116
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
118117
github.com/modern-go/reflect2 v1.0.2 // indirect
118+
github.com/moredure/easygo v0.0.0-20220122214504-21cd2ebdd15b
119119
github.com/opencontainers/go-digest v1.0.0 // indirect
120120
github.com/opencontainers/image-spec v1.0.2 // indirect
121121
github.com/opencontainers/runtime-spec v1.0.2 // indirect

components/supervisor/go.sum

+2-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components/supervisor/pkg/activation/activation.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import (
1010
"os"
1111
"sync"
1212

13-
"github.com/mailru/easygo/netpoll"
13+
"github.com/gitpod-io/gitpod/common-go/log"
14+
"github.com/moredure/easygo/netpoll"
1415
"golang.org/x/xerrors"
1516
)
1617

@@ -19,16 +20,22 @@ type Callback func(socketFD *os.File) error
1920

2021
// Listen polls on the listener and calls callback when someone writes to it.
2122
func Listen(ctx context.Context, l net.Listener, activate Callback) error {
22-
poller, err := netpoll.New(nil)
23+
poller, err := netpoll.New(&netpoll.Config{
24+
OnWaitError: func(err error) {
25+
log.WithError(err).Error("netpoll: wait loop error")
26+
},
27+
})
2328
if err != nil {
2429
return err
2530
}
31+
defer poller.Close()
2632

2733
// Get netpoll descriptor with EventRead|EventEdgeTriggered.
2834
desc, err := netpoll.HandleListener(l, netpoll.EventRead|netpoll.EventEdgeTriggered)
2935
if err != nil {
3036
return err
3137
}
38+
defer desc.Close()
3239

3340
var (
3441
runc = make(chan bool, 1)

0 commit comments

Comments
 (0)