Uploaded image for project: 'MicroShift'
  1. MicroShift
  2. USHIFT-1017

panic due null pointer in scc adding on aarm

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Normal Normal
    • openshift-4.13
    • None
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • uShift Sprint 234

      Description of problem:

      Enabling microshift on aarm fedora coreos leads to endless restart loop of microshift service. It panics while creating SCCs. Error is nil pointer reference.

       

       656   │ I0325 11:22:28.005925    7014 openshift-oauth-server.go:112] oauth-apiserver is ready
       657   │ I0325 11:22:28.006648    7014 manager.go:112] Starting openshift-default-scc-manager
       658   │ I0325 11:22:28.009248    7014 scc.go:73] Applying scc api assets/scc/0000_20_kube-apiserver-operator_00_scc-anyuid.yaml
       659   │ E0325 11:22:28.033401    7014 runtime.go:76] Observed a panic: runtime error: invalid memory address or nil pointer dereference
       660   │ goroutine 26078 [running]:
       661   │ k8s.io/apiserver/pkg/server/filters.(*timeoutHandler).ServeHTTP.func1.1()
       662   │     /src/microshift/packaging/rpm/_rpmbuild/BUILD/microshift-48863ff4cf9146906a7d7879c2ca93265c7ad662/vendor/k8s.io/apiserver/pkg/server/filt
             │ ers/timeout.go:102 +0xb0
       663   │ panic({0x589f600, 0x90838c0})
       664   │     /usr/lib/golang/src/runtime/panic.go:884 +0x20c
       665   │ reflect.mapiterinit(0x57cd380?, 0x401ea09c78?, 0x401ea21bf8?)
       666   │     /usr/lib/golang/src/runtime/map.go:1375 +0x1c
       667   │ github.com/modern-go/reflect2.(*UnsafeMapType).UnsafeIterate(...)

      Version-Release number of selected component (if applicable):

       

      How reproducible:

      Steps to Reproduce:

       

      I installed fedora coreos on raspi 4 and compiled rpms for microshift by following these steps (I built it in fedora 37 container on the coreos on raspi4):

      https://microshift.io/docs/developer-documentation/build-install-rpm/

      and installed it by following these:

      https://microshift.io/docs/getting-started/

       

      Then after installing crio, sellinux and microshift rpm:

      1. systemctl start microshift

      Actual results:

       

      It proceeds to raise the etcd and api up, but then while doing SCCs it panics. See the full log in attachment.

      panic.log

      Expected results:

      Start the services and start serving API.

      Additional info:

      If one has raspi, here are some details of the image:

      config.bu

       

      variant: fcos
      version: 1.4.0
      passwd:
        users:
          - name: core
            ssh_authorized_keys:
              - <ssh key>
      storage:
        links:
          - path: /etc/localtime
            target: ../usr/share/zoneinfo/Europe/Helsinki
        files:
          - path: /etc/hostname
            overwrite: true
            contents:
              inline: raspishift
        disks:
          - device: /dev/disk/by-id/coreos-boot-disk
            wipe_table: false
            partitions:
              - label: root
                number: 4
                size_mib: 51200
                wipe_partition_entry: true
              - label: swap
                number: 5
                size_mib: 8192
                guid: 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
                wipe_partition_entry: true
              - label: data
                number: 6
                guid: E6D6D379-F507-44C2-A23C-238F2A3DF928
                wipe_partition_entry: true
       

      and creating the install image for coreos from above:

       

      butane --pretty --strict config-rootfs.bu|tee butane.ign  sudo coreos-installer install --architecture=aarch64 -i butane.ign /dev/sda
      FCOSEFIPARTITION=$(lsblk $FCOSDISK -J -oLABEL,PATH  | jq -r '.blockdevices[] | select(.label == "EFI-SYSTEM")'.path)
      mkdir /tmp/FCOSEFIpart
      sudo mount $FCOSEFIPARTITION /tmp/FCOSEFIpart
      sudo rsync -avh --ignore-existing /tmp/RPi4boot/boot/efi/ /tmp/FCOSEFIpart/
      sudo umount $FCOSEFIPARTITION

       

      that gives a usb drive which will boot raspberyrpi into fedora coreos. Then I  grabbed fedora container to build the rpm in:

       

      podman run -ti --name fed --hostname fed -v src:/src:z fedora:37 

      I build the rpm in there according to above link for instructions, and installed the rpms to the fcos.

            ggiguash@redhat.com Gregory Giguashvili
            rhn-sa-itengval Ilkka Tengvall
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: