Skip to content

Commit 4dabc3d

Browse files
authored
Merge pull request kubernetes#94534 from knight42/fix/TestRestoreAllGrabOldLock
test(iptables): deflake TestRestoreAllGrabOldLock
2 parents a23cf70 + f6f0f79 commit 4dabc3d

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

pkg/util/iptables/iptables_test.go

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ import (
2626
"reflect"
2727
"strings"
2828
"testing"
29+
"time"
2930

3031
"k8s.io/apimachinery/pkg/util/sets"
3132
utilversion "k8s.io/apimachinery/pkg/util/version"
33+
"k8s.io/apimachinery/pkg/util/wait"
3234
"k8s.io/utils/exec"
3335
fakeexec "k8s.io/utils/exec/testing"
3436
)
@@ -1109,11 +1111,23 @@ func TestRestoreAllGrabOldLock(t *testing.T) {
11091111
runner := newInternal(&fexec, ProtocolIPv4, TestLockfilePath)
11101112
defer os.Remove(TestLockfilePath)
11111113

1112-
// Grab the abstract @xtables socket
1113-
runLock, err := net.ListenUnix("unix", &net.UnixAddr{Name: "@xtables", Net: "unix"})
1114+
var runLock *net.UnixListener
1115+
// Grab the abstract @xtables socket, will retry if the socket exists
1116+
err := wait.PollImmediate(time.Second, wait.ForeverTestTimeout, func() (done bool, err error) {
1117+
runLock, err = net.ListenUnix("unix", &net.UnixAddr{Name: "@xtables", Net: "unix"})
1118+
if err != nil {
1119+
t.Logf("Failed to lock @xtables: %v, will retry.", err)
1120+
return false, nil
1121+
}
1122+
return true, nil
1123+
})
11141124
if err != nil {
1115-
t.Fatalf("expected to lock @xtables, got %v", err)
1125+
t.Fatal("Timed out locking @xtables")
1126+
}
1127+
if runLock == nil {
1128+
t.Fatal("Unexpected nil runLock")
11161129
}
1130+
11171131
defer runLock.Close()
11181132

11191133
err = runner.RestoreAll([]byte{}, NoFlushTables, RestoreCounters)

0 commit comments

Comments
 (0)