Bug 1907822 - [OCP on OSP] openshift-install panic when checking quota with install-config have no flavor set
Summary: [OCP on OSP] openshift-install panic when checking quota with install-config ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer
Version: 4.7
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: 4.7.0
Assignee: Matthew Booth
QA Contact: weiwei jiang
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-12-15 10:31 UTC by weiwei jiang
Modified: 2021-02-24 15:44 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-02-24 15:43:55 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github openshift installer pull 4483 0 None open Bug 1907822: Don't panic on bad data in quota validations 2021-01-19 01:20:52 UTC
Red Hat Product Errata RHSA-2020:5633 0 None None None 2021-02-24 15:44:37 UTC

Description weiwei jiang 2020-12-15 10:31:24 UTC
Version:
$ ./openshift-install version 
./openshift-install 4.7.0-0.nightly-2020-12-13-224840
built from commit ec982ecf5bd847add0f3af82b04f32251972701c
release image registry.svc.ci.openshift.org/ocp/release@sha256:4d2333a2d846755165e14ccc1f0e32d51a3c596099830d95218c5f7284da6b4a

Platform:
OSP

Please specify:
* IPI 

What happened?
When no flavor given in the install-config, create cluster will panic with:
# cat install-config.yaml
apiVersion: v1
baseDomain: 10.46.22.57.nip.io
compute:
- architecture: amd64
  hyperthreading: Enabled
  name: worker
  platform: {}
  replicas: 3
controlPlane:
  architecture: amd64
  hyperthreading: Enabled
  name: master
  platform: {}
  replicas: 3
metadata:
  name: wj47ios1214a
......
platform:
  openstack:
    cloud: kuryr13
    apiFloatingIP: 10.46.22.57
    clusterOSImage: rhcos-47.83.202012030221-0
    externalNetwork: nova
publish: External

$ ./openshift-install create cluster --dir . --log-level debug 
...
DEBUG   Generating Platform Quota Check...         
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x2da3b44]

goroutine 1 [running]:
github.com/openshift/installer/pkg/asset/quota/openstack.machineFlavorCoresToQuota(...)
        /go/src/github.com/openshift/installer/pkg/asset/quota/openstack/openstack.go:70
github.com/openshift/installer/pkg/asset/quota/openstack.controlPlane(0xc00006e5b0, 0xc00085a5e0, 0x3, 0x3, 0xa0, 0xc938060, 0xb4296a0)
        /go/src/github.com/openshift/installer/pkg/asset/quota/openstack/openstack.go:35 +0xe4
github.com/openshift/installer/pkg/asset/quota/openstack.Constraints(0xc00006e5b0, 0xc000c6a800, 0x3, 0x4, 0xc000c74780, 0x1, 0x1, 0xc000ebe180, 0x8, 0x6b05b0)
        /go/src/github.com/openshift/installer/pkg/asset/quota/openstack/openstack.go:26 +0x2bf
github.com/openshift/installer/pkg/asset/quota.(*PlatformQuotaCheck).Generate(0x15c03bc8, 0xc000ebf560, 0xd977d15, 0x12)
        /go/src/github.com/openshift/installer/pkg/asset/quota/quota.go:129 +0x10b0
github.com/openshift/installer/pkg/asset/store.(*storeImpl).fetch(0xc000c4da70, 0xed07380, 0x15c03bc8, 0xd91d4a4, 0x2, 0xd91d4a4, 0x2)
        /go/src/github.com/openshift/installer/pkg/asset/store/store.go:227 +0x7dc
github.com/openshift/installer/pkg/asset/store.(*storeImpl).fetch(0xc000c4da70, 0x7f71325e94b0, 0x15bb27a0, 0x0, 0x0, 0x40b4e5, 0xc3e99c0)
        /go/src/github.com/openshift/installer/pkg/asset/store/store.go:221 +0x625
github.com/openshift/installer/pkg/asset/store.(*storeImpl).Fetch(0xc000c4da70, 0x7f71325e94b0, 0x15bb27a0, 0x15b7a380, 0x8, 0x8, 0x0, 0x0)
        /go/src/github.com/openshift/installer/pkg/asset/store/store.go:77 +0x4b
main.runTargetCmd.func1(0x7ffe1ec51da9, 0x1, 0xc000ce7c20, 0xc000c4d830)
        /go/src/github.com/openshift/installer/cmd/openshift-install/create.go:173 +0x135
main.runTargetCmd.func2(0x15b83620, 0xc000839c80, 0x0, 0x4)
        /go/src/github.com/openshift/installer/cmd/openshift-install/create.go:200 +0xb5
github.com/spf13/cobra.(*Command).execute(0x15b83620, 0xc000839c40, 0x4, 0x4, 0x15b83620, 0xc000839c40)
        /go/src/github.com/openshift/installer/vendor/github.com/spf13/cobra/command.go:854 +0x2c2
github.com/spf13/cobra.(*Command).ExecuteC(0xc000cca2c0, 0xc000a35df8, 0x1, 0x1)
        /go/src/github.com/openshift/installer/vendor/github.com/spf13/cobra/command.go:958 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
        /go/src/github.com/openshift/installer/vendor/github.com/spf13/cobra/command.go:895
main.installerMain()
        /go/src/github.com/openshift/installer/cmd/openshift-install/main.go:70 +0x2b8
main.main()
        /go/src/github.com/openshift/installer/cmd/openshift-install/main.go:50 +0x16f



What did you expect to happen?
It should prompt some message instead of the panic

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

Anything else we need to know?

Comment 2 Matthew Booth 2021-01-21 11:27:38 UTC
This PR is ready to roll.

Comment 4 weiwei jiang 2021-01-22 08:19:23 UTC
Checked with 4.7.0-0.nightly-2021-01-21-215614, and it's fixed now.

$ ./openshift-install-4.7 version
./openshift-install-4.7 4.7.0-0.nightly-2021-01-21-215614
built from commit a514c6873ed9352df31dcaef7f8563d668380782
release image registry.ci.openshift.org/ocp/release@sha256:026b424563b00dbcfa4df88592c5d8e2d2372fc9b45f68acf928af5e30d62e0a


---               
apiVersion: v1                                                                                                                                                                                                                                                                  
baseDomain: 10.0.101.66.nip.io                                                                                                          
compute:                 
- architecture: amd64                                                                                                                   
  hyperthreading: Enabled                                                                                                               
  name: worker                                               
  platform:                                                                                                                             
    openstack: {}                       
  replicas: 2              
controlPlane:              
  architecture: amd64         
  hyperthreading: Enabled              
  name: master       
  platform:              
    openstack: {}                                                                                                                                                                                                                                                                 replicas: 3                                                                                                                           
metadata:                                                           
  name: wj45ios1019a                                                                                                                                                                                                                                                            
networking:                                                                                                                                                                                                                                                                     
  clusterNetwork:        
  - cidr: 10.128.0.0/14                                                                                                                 
    hostPrefix: 23                                                                                                                                                                                                                                                              
  machineNetwork:                       
  - cidr: 192.168.0.0/18
  networkType: OpenShiftSDN
  serviceNetwork:             
  - 172.30.0.0/16
platform:            
  openstack:
    cloud: upshift
    externalNetwork: provider_net_cci_8
publish: External
pullSecret: Hidden
sshKey: HIDDEN


Running: ./openshift-install-4.7 create manifests --dir /tmp/tmp.7e41FUb754 2>&1
level=info msg=Credentials loaded from file "/home/wjiang/osp_remover/clouds.yaml"
level=info msg=Consuming Install Config from target directory
level=info msg=Manifests created in: /tmp/tmp.7e41FUb754/manifests and /tmp/tmp.7e41FUb754/openshift

Comment 7 errata-xmlrpc 2021-02-24 15:43:55 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.7.0 security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:5633


Note You need to log in before you can comment on or make changes to this bug.