summaryrefslogtreecommitdiffhomepage
path: root/pkg/test/dockerutil/profile.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/test/dockerutil/profile.go')
-rw-r--r--pkg/test/dockerutil/profile.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/pkg/test/dockerutil/profile.go b/pkg/test/dockerutil/profile.go
index 4855a52fc..12fe98b16 100644
--- a/pkg/test/dockerutil/profile.go
+++ b/pkg/test/dockerutil/profile.go
@@ -82,10 +82,15 @@ func (p *profile) createProcess(c *Container) error {
}
// The root directory of this container's runtime.
- root := fmt.Sprintf("--root=/var/run/docker/runtime-%s/moby", c.runtime)
+ rootDir := fmt.Sprintf("/var/run/docker/runtime-%s/moby", c.runtime)
+ if _, err := os.Stat(rootDir); os.IsNotExist(err) {
+ // In docker v20+, due to https://github.com/moby/moby/issues/42345 the
+ // rootDir seems to always be the following.
+ rootDir = "/var/run/docker/runtime-runc/moby"
+ }
- // Format is `runsc --root=rootdir debug --profile-*=file --duration=24h containerID`.
- args := []string{root, "debug"}
+ // Format is `runsc --root=rootDir debug --profile-*=file --duration=24h containerID`.
+ args := []string{fmt.Sprintf("--root=%s", rootDir), "debug"}
for _, profileArg := range p.Types {
outputPath := filepath.Join(p.BasePath, fmt.Sprintf("%s.pprof", profileArg))
args = append(args, fmt.Sprintf("--profile-%s=%s", profileArg, outputPath))