fix: fix incomplete cleanup in tunnel.json and zombie process in functional test

pull/20338/head
锦南路之花 2024-07-04 00:31:01 +02:00 committed by Medya Ghazizadeh
parent 1edaec55f4
commit 3c42f1ce99
4 changed files with 14 additions and 4 deletions

View File

@ -87,7 +87,10 @@ func (r *persistentRegistry) Register(tunnel *ID) (rerr error) {
alreadyExists := false
for i, t := range tunnels {
if t.Route.Equal(tunnel.Route) {
// it is allowed for multiple minikube clusters to have multiple tunnels simultaneously
// it is possible that an old tunnel from an old profile has duplicated route information
// so we need to check both machine name and route information
if tunnel.MachineName == t.MachineName && t.Route.Equal(tunnel.Route) {
isRunning, err := checkIfRunning(t.Pid)
if err != nil {
return fmt.Errorf("error checking whether conflicting tunnel (%v) is running: %s", t, err)

View File

@ -79,7 +79,7 @@ func TestFunctional(t *testing.T) {
// TestFunctionalNewestKubernetes are functionality run functional tests using NewestKubernetesVersion
func TestFunctionalNewestKubernetes(t *testing.T) {
if strings.Contains(*startArgs, "--kubernetes-version") {
if strings.Contains(*startArgs, "--kubernetes-version") || constants.NewestKubernetesVersion == constants.DefaultKubernetesVersion {
t.Skip()
}
k8sVersionString := constants.NewestKubernetesVersion
@ -91,7 +91,7 @@ func TestFunctionalNewestKubernetes(t *testing.T) {
func testFunctional(t *testing.T, k8sVersion string) {
profile := UniqueProfileName("functional")
ctx := context.WithValue(context.Background(), "k8sVersion", k8sVersion)
ctx := context.WithValue(context.Background(), ContextKey("k8sVersion"), k8sVersion)
ctx, cancel := context.WithTimeout(ctx, Minutes(40))
defer func() {
if !*cleanup {

View File

@ -432,4 +432,9 @@ func validateTunnelDelete(_ context.Context, t *testing.T, _ string) {
checkRoutePassword(t)
// Stop tunnel
tunnelSession.Stop(t)
// prevent the child process from becoming a defunct zombie process
if err := tunnelSession.cmd.Wait(); err != nil {
t.Logf("failed to stop process: %v", err)
return
}
}

View File

@ -119,9 +119,11 @@ func StartArgs() []string {
return strings.Split(*startArgs, " ")
}
type ContextKey string
func StartArgsWithContext(ctx context.Context) []string {
res := strings.Split(*startArgs, " ")
value := ctx.Value("k8sVersion")
value := ctx.Value(ContextKey("k8sVersion"))
if value != nil && value != "" {
res = append(res, fmt.Sprintf("--kubernetes-version=%s", value))
}