Merge pull request #96978 from JornShen/flaky_test_TestVersion

[flaky test] fix race in TestVersion in pkg/kubelet/cri/remote
This commit is contained in:
Kubernetes Prow Robot 2020-12-08 21:05:42 -08:00 committed by GitHub
commit a8c4a2453c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 65 additions and 4 deletions

View File

@ -52,6 +52,7 @@ go_test(
embed = [":go_default_library"],
deps = [
"//pkg/kubelet/cri/remote/fake:go_default_library",
"//pkg/kubelet/cri/remote/util:go_default_library",
"//staging/src/k8s.io/cri-api/pkg/apis:go_default_library",
"//staging/src/k8s.io/cri-api/pkg/apis/testing:go_default_library",
"//vendor/github.com/stretchr/testify/assert:go_default_library",

View File

@ -23,7 +23,51 @@ go_library(
"//staging/src/k8s.io/cri-api/pkg/apis/testing:go_default_library",
"//vendor/google.golang.org/grpc:go_default_library",
"//vendor/k8s.io/utils/exec:go_default_library",
],
] + select({
"@io_bazel_rules_go//go/platform:aix": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:android": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:darwin": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:dragonfly": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:freebsd": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:illumos": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:ios": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:js": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:linux": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:nacl": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:netbsd": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:openbsd": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:plan9": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"@io_bazel_rules_go//go/platform:solaris": [
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
],
"//conditions:default": [],
}),
)
filegroup(

View File

@ -18,11 +18,17 @@ limitations under the License.
package fake
import (
"fmt"
"k8s.io/apimachinery/pkg/util/rand"
)
const (
defaultUnixEndpoint = "unix:///tmp/kubelet_remote.sock"
defaultUnixEndpoint = "unix:///tmp/kubelet_remote_%v.sock"
)
// GenerateEndpoint generates a new unix socket server of grpc server.
func GenerateEndpoint() (string, error) {
return defaultUnixEndpoint, nil
// use random int be a part fo file name
return fmt.Sprintf(defaultUnixEndpoint, rand.Int()), nil
}

View File

@ -17,6 +17,7 @@ limitations under the License.
package remote
import (
"os"
"testing"
"time"
@ -25,6 +26,7 @@ import (
internalapi "k8s.io/cri-api/pkg/apis"
apitest "k8s.io/cri-api/pkg/apis/testing"
fakeremote "k8s.io/kubernetes/pkg/kubelet/cri/remote/fake"
"k8s.io/kubernetes/pkg/kubelet/cri/remote/util"
)
const (
@ -53,7 +55,15 @@ func createRemoteRuntimeService(endpoint string, t *testing.T) internalapi.Runti
func TestVersion(t *testing.T) {
fakeRuntime, endpoint := createAndStartFakeRemoteRuntime(t)
defer fakeRuntime.Stop()
defer func() {
fakeRuntime.Stop()
// clear endpoint file
if addr, _, err := util.GetAddressAndDialer(endpoint); err == nil {
if _, err := os.Stat(addr); err == nil {
os.Remove(addr)
}
}
}()
r := createRemoteRuntimeService(endpoint, t)
version, err := r.Version(apitest.FakeVersion)