runtime: don't start shim management server in tests

Shim management server is running in a go routine, in test mode
this will cause the directory where the listen socket
file(/run/vc/sbs/777-77-77777777/shim-monitor.sock) in leak
after the tests finished.

Fixes: #2805

Signed-off-by: bin <bin@hyper.sh>
This commit is contained in:
bin 2021-10-08 18:18:05 +08:00
parent 988eb95621
commit 5c77cc2c49
2 changed files with 14 additions and 1 deletions

View File

@ -39,6 +39,13 @@ import (
"github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/oci"
)
type startManagementServerFunc func(s *service, ctx context.Context, ociSpec *specs.Spec)
var defaultStartManagementServerFunc startManagementServerFunc = func(s *service, ctx context.Context, ociSpec *specs.Spec) {
go s.startManagementServer(ctx, ociSpec)
shimLog.Info("management server started")
}
func create(ctx context.Context, s *service, r *taskAPI.CreateTaskRequest) (*container, error) {
rootFs := vc.RootFs{}
if len(r.Rootfs) == 1 {
@ -131,7 +138,9 @@ func create(ctx context.Context, s *service, r *taskAPI.CreateTaskRequest) (*con
}
s.hpid = uint32(pid)
go s.startManagementServer(ctx, ociSpec)
if defaultStartManagementServerFunc != nil {
defaultStartManagementServerFunc(s, ctx, ociSpec)
}
case vc.PodContainer:
span, ctx := katatrace.Trace(s.ctx, shimLog, "create", shimTracingTags)

View File

@ -125,6 +125,10 @@ func init() {
}
tc = ktu.NewTestConstraint(false)
// disable shim management server.
// all tests are not using this, so just set it to nil
defaultStartManagementServerFunc = nil
}
// createOCIConfig creates an OCI configuration (spec) file in