Bug 2109326

Summary: GCP panic: runtime error: slice bounds out of range when destroying a cluster
Product: OpenShift Container Platform Reporter: Peter Larsen <plarsen>
Component: InstallerAssignee: OCP Installer <ocp-installer>
Installer sub component: openshift-installer QA Contact: Gaoyun Pei <gpei>
Status: CLOSED DUPLICATE Docs Contact:
Severity: unspecified    
Priority: unspecified CC: rdossant
Version: 4.11   
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-07-21 07:13:59 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Peter Larsen 2022-07-21 00:56:35 UTC
After a successful default IPI install of 4.11, destroying the cluster using "openshift-install destroy cluster" fails leaving some objects like networking behind.

DEBUG Deleting compute instance ocp1-2v62k-master-1 in zone us-east4-b 
DEBUG Deleting compute instance ocp1-2v62k-worker-b-t682r in zone us-east4-b 
DEBUG Deleting compute instance ocp1-2v62k-master-2 in zone us-east4-c 
DEBUG Deleting compute instance ocp1-2v62k-worker-c-tlc6x in zone us-east4-c 
DEBUG Deleting compute instance ocp1-2v62k-master-0 in zone us-east4-a 
DEBUG Deleting compute instance ocp1-2v62k-worker-a-v6m9h in zone us-east4-a 
DEBUG Instances: 6 items pending                   
E0720 20:20:27.379537  330968 runtime.go:78] Observed a panic: runtime.boundsError{x:22, y:18, signed:true, code:0x1} (runtime error: slice bounds out of range [:22] with length 18)
goroutine 1 [running]:
k8s.io/apimachinery/pkg/util/runtime.logPanic({0x41d43c0?, 0xc000ea3638})
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:74 +0x86
k8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0x18?})
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:48 +0x75
panic({0x41d43c0, 0xc000ea3638})
	/usr/lib/golang/src/runtime/panic.go:838 +0x207
github.com/openshift/installer/pkg/destroy/gcp.(*ClusterUninstaller).formatClusterIDForStorage(...)
	/go/src/github.com/openshift/installer/pkg/destroy/gcp/disk.go:25
github.com/openshift/installer/pkg/destroy/gcp.(*ClusterUninstaller).storageIDFilter(...)
	/go/src/github.com/openshift/installer/pkg/destroy/gcp/disk.go:29
github.com/openshift/installer/pkg/destroy/gcp.(*ClusterUninstaller).storageLabelOrClusterIDFilter(0xc00013d5c0)
	/go/src/github.com/openshift/installer/pkg/destroy/gcp/disk.go:39 +0x1fe
github.com/openshift/installer/pkg/destroy/gcp.(*ClusterUninstaller).listDisks(0x3?)
	/go/src/github.com/openshift/installer/pkg/destroy/gcp/disk.go:43 +0x1e
github.com/openshift/installer/pkg/destroy/gcp.(*ClusterUninstaller).destroyDisks(0xc00013d5c0)
	/go/src/github.com/openshift/installer/pkg/destroy/gcp/disk.go:116 +0x36
github.com/openshift/installer/pkg/destroy/gcp.(*ClusterUninstaller).destroyCluster(0xc00013d5c0)
	/go/src/github.com/openshift/installer/pkg/destroy/gcp/gcp.go:174 +0x78e
k8s.io/apimachinery/pkg/util/wait.ConditionFunc.WithContext.func1({0x4ffbf1, 0x0})
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:220 +0x1b
k8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtectionWithContext({0x19f06718?, 0xc000072090?}, 0x8?)
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:233 +0x57
k8s.io/apimachinery/pkg/util/wait.WaitForWithContext({0x19f06718, 0xc000072090}, 0xc000d9abe8, 0x11096ca?)
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:660 +0x116
k8s.io/apimachinery/pkg/util/wait.poll({0x19f06718, 0xc000072090}, 0xc8?, 0x1108485?, 0x10?)
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:594 +0x9a
k8s.io/apimachinery/pkg/util/wait.PollImmediateInfiniteWithContext({0x19f06718, 0xc000072090}, 0x40d687?, 0x10?)
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:566 +0x49
k8s.io/apimachinery/pkg/util/wait.PollImmediateInfinite(0x19f06750?, 0xc000380ea0?)
	/go/src/github.com/openshift/installer/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:555 +0x46
github.com/openshift/installer/pkg/destroy/gcp.(*ClusterUninstaller).Run(0xc00013d5c0)
	/go/src/github.com/openshift/installer/pkg/destroy/gcp/gcp.go:130 +0x519
main.runDestroyCmd({0x7ffda07a252a, 0x4}, 0x0)
	/go/src/github.com/openshift/installer/cmd/openshift-install/destroy.go:67 +0x92
main.newDestroyClusterCmd.func1(0xc0006d7b80?, {0xc000399bc0?, 0x2?, 0x2?})
	/go/src/github.com/openshift/installer/cmd/openshift-install/destroy.go:53 +0x7f
github.com/spf13/cobra.(*Command).execute(0xc0006d7b80, {0xc000399b80, 0x2, 0x2})
	/go/src/github.com/openshift/installer/vendor/github.com/spf13/cobra/command.go:860 +0x663
github.com/spf13/cobra.(*Command).ExecuteC(0xc0006d6a00)
	/go/src/github.com/openshift/installer/vendor/github.com/spf13/cobra/command.go:974 +0x3b4
github.com/spf13/cobra.(*Command).Execute(...)
	/go/src/github.com/openshift/installer/vendor/github.com/spf13/cobra/command.go:902
main.installerMain()
	/go/src/github.com/openshift/installer/cmd/openshift-install/main.go:60 +0x29e
main.main()
	/go/src/github.com/openshift/installer/cmd/openshift-install/main.go:38 +0xff
panic: runtime error: slice bounds out of range [:22] with length 18 [recovered]
	panic: runtime error: slice bounds out of range [:22] with length 18

Version:

$ openshift-install version
install411 4.11.0-rc.2
built from commit bd27fd83be3b444b692c354c573e8eba17403aa1
release image quay.io/openshift-release-dev/ocp-release@sha256:f7791d5c57aa6f0b531a5e934a77ddb02ad7242c76dbbe2b2fa2c079d84c7743
release architecture amd64

Platform: 

GCP
(rhpds open environment) 

Please specify:
* IPI (automated install with `openshift-install`. If you don't know, then it's IPI)

What happened?
"destroy cluster" fails. Does not fully clean up the install. 

#Enter text here.

#See the troubleshooting documentation (https://github.com/openshift/installer/blob/master/docs/user/troubleshooting.md) for ideas about what information to collect.

#For example, 

# If the installer fails to create resources (https://github.com/openshift/installer/blob/master/docs/user/troubleshooting.md#installer-fails-to-create-resources), attach the relevant portions of your `.openshift_install.log.`
# If the installer fails to bootstrap the cluster (https://github.com/openshift/installer/blob/master/docs/user/troubleshootingbootstrap.md), attach the bootstrap log bundle.
# If the installer fails to complete installation after bootstrapping completes (https://github.com/openshift/installer/blob/master/docs/user/troubleshooting.md#installer-fails-to-initialize-the-cluster), attach the must-gather log bundle using `oc adm must-gather`

# Always at least include the `.openshift_install.log`
It does not contain the error - the DEBUG messages from above is listed but not the error. 

How to reproduce it (as minimally and precisely as possible)?

Create GCP project, setup service account, DNS and enable the required service APIs as per docs. Then run a standard IPI install. Platform parameters used:

platform:
  gcp:
    projectID: openenv-tds55
    region: us-east4
    defaultMachinePlatform:
      type: c2-standard-8

Anything else we need to know?
Cluster was operational, no issues.
This error is particular a problem when the install fails due to failing pre-reqs. Cleaning up DNS, VPCs and subnets with dependencies is tricky.

Comment 1 Rafael Fonseca 2022-07-21 07:13:59 UTC

*** This bug has been marked as a duplicate of bug 2104906 ***