Skip to content

Commit f1b5a7e

Browse files
committed
Merge branch 'main' into tt-1930-perf-tool-add-logging
2 parents 04dac45 + 1374a36 commit f1b5a7e

File tree

3 files changed

+53
-8
lines changed

3 files changed

+53
-8
lines changed

.github/workflows/lint.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,26 @@ jobs:
2121
- name: Run pre-commit checks
2222
run: |
2323
nix develop -c sh -c "pre-commit run --hook-stage pre-commit --show-diff-on-failure --color=always"
24+
25+
clean-go-mods:
26+
name: Clean go mods
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Set up Go 1.23.3
30+
uses: actions/setup-go@v5
31+
with:
32+
go-version: '1.23.3'
33+
- name: Install gomods
34+
run: go install github.com/jmank88/[email protected]
35+
- name: Check out code
36+
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
37+
- name: Run gomods tidy
38+
run: gomods tidy
39+
- name: Ensure clean after tidy
40+
run: |
41+
git add --all
42+
git diff --minimal --cached --exit-code
43+
2444
tools:
2545
name: Get tool-versions
2646
runs-on: ubuntu-latest

lib/docker/docker.go

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package docker
22

33
import (
4+
"context"
45
"fmt"
56
"strings"
67

8+
"github.com/docker/docker/api/types/container"
79
"github.com/google/uuid"
10+
"github.com/pkg/errors"
811
"github.com/rs/zerolog"
912
tc "github.com/testcontainers/testcontainers-go"
1013

@@ -58,8 +61,13 @@ var NaiveRetrier = func(l zerolog.Logger, startErr error, req tc.GenericContaine
5861
Str("Retrier", "NaiveRetrier").
5962
Msgf("Attempting to start %s container", req.Name)
6063

61-
oldName := req.Name
62-
req.Name = req.Name + "-naive-retry"
64+
req.Reuse = false // We need to force a new container to be created
65+
66+
removeErr := removeContainer(req)
67+
if removeErr != nil {
68+
l.Error().Err(removeErr).Msgf("Failed to remove %s container to initiate restart", req.Name)
69+
return nil, removeErr
70+
}
6371

6472
ct, err := tc.GenericContainer(testcontext.Get(nil), req)
6573
if err == nil {
@@ -78,8 +86,6 @@ var NaiveRetrier = func(l zerolog.Logger, startErr error, req tc.GenericContaine
7886
}
7987
}
8088

81-
req.Name = oldName
82-
8389
l.Debug().
8490
Str("Original start error", startErr.Error()).
8591
Str("Current start error", err.Error()).
@@ -94,9 +100,8 @@ var LinuxPlatformImageRetrier = func(l zerolog.Logger, startErr error, req tc.Ge
94100
if startErr == nil {
95101
return nil, startErr
96102
}
103+
97104
req.Reuse = false // We need to force a new container to be created
98-
oldName := req.Name
99-
req.Name = req.Name + "-linux-retry"
100105

101106
// a bit lame, but that's the lame error we get in case there's no specific image for our platform :facepalm:
102107
if !strings.Contains(startErr.Error(), "No such image") {
@@ -115,6 +120,12 @@ var LinuxPlatformImageRetrier = func(l zerolog.Logger, startErr error, req tc.Ge
115120
originalPlatform := req.ImagePlatform
116121
req.ImagePlatform = "linux/x86_64"
117122

123+
removeErr := removeContainer(req)
124+
if removeErr != nil {
125+
l.Error().Err(removeErr).Msgf("Failed to remove %s container to initiate restart", req.Name)
126+
return nil, removeErr
127+
}
128+
118129
ct, err := tc.GenericContainer(testcontext.Get(nil), req)
119130
if err == nil {
120131
l.Debug().
@@ -124,7 +135,6 @@ var LinuxPlatformImageRetrier = func(l zerolog.Logger, startErr error, req tc.Ge
124135
}
125136

126137
req.ImagePlatform = originalPlatform
127-
req.Name = oldName
128138

129139
if ct != nil {
130140
err := ct.Terminate(testcontext.Get(nil))
@@ -171,3 +181,18 @@ func StartContainerWithRetry(l zerolog.Logger, req tc.GenericContainerRequest, r
171181

172182
return nil, err
173183
}
184+
185+
func removeContainer(req tc.GenericContainerRequest) error {
186+
provider, providerErr := tc.NewDockerProvider()
187+
if providerErr != nil {
188+
return errors.Wrapf(providerErr, "failed to create Docker provider")
189+
}
190+
191+
removeErr := provider.Client().ContainerRemove(context.Background(), req.Name, container.RemoveOptions{Force: true})
192+
if removeErr != nil && strings.Contains(strings.ToLower(removeErr.Error()), "no such container") {
193+
// container doesn't exist, nothing to remove
194+
return nil
195+
}
196+
197+
return removeErr
198+
}

wasp/benchspy/TO_DO.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Known things to do:
2-
- [ ] add logger
2+
- [x] add logger
33
- [x] add unit tests for prometheus
44
- [x] add wasp test for prometheus only
55
- [ ] add e2e OCRv2 test with CTFv2

0 commit comments

Comments
 (0)