Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-3709

SLOF regression prevents VM startup

    • SLOF-20210217-2.module+el8.10.0+20141+6faa2812
    • ZStream
    • sst_virtualization
    • ssg_virtualization
    • 4
    • 7
    • None
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • Approved Blocker
    • ppc64le
    • None

      This issue is the root cause of https://issues.redhat.com/browse/OCPBUGS-17476

      What were you trying to do that didn't work?

      In the issue above, some VMs which were starting fine on rhel 8.5 no longer start after upgrading to rhel 8.6 or newer. Adding <console type='pty'> to libvirt XML and restarting the VM is enough to get it to start (this adds a spapr-vio console and a spapr-vio-serial device to the VM). I've also noticed that the boot is successful after adding <graphics type='vnc'> to the VM, or removing the virtio-serial controller (this implies removing the virtio console if there's one).

      If I start from a RHEL 8.5 system, upgrade QEMU to a newer (8.6+) version, then the VM still boots. Then if I upgrade the SLOF package from SLOF-20191022-3.git899d9883.module+el8.3.0+6423+e4cb6418.noarch to SLOF-20210217-1.module+el8.6.0+14480+c0a3aa0f.noarch, the bug starts happening and the VM stops booting.

      Please provide the package NVR for which bug is seen:

      How reproducible:

      always if you follow the steps below

      Steps to reproduce

      1. grab latest "QEMU Compressed" ppc64le image from https://releases-rhcos-art.apps.ocp-virt.prod.psi.redhat.com/?stream=prod/streams/4.13-9.2&arch=ppc64le
      2. uncompress it to `/var/lib/libvirt/images`and possibly create an image on top using it as a backing file (qemu-img create -f qcow2  /var/lib/libvirt/images/debug.qcow2 -b /var/lib/libvirt/images/rhcos-413.92.202307260246-0-qemu.ppc64le.qcow2  -F qcow2)
      3. create  VM using this XML definition:
        <domain type='kvm'>
          <name>debug</name>
          <memory unit='KiB'>8388608</memory>
          <vcpu>4</vcpu>
          <os>
            <type arch='ppc64le' machine='pseries-rhel8.2.0'>hvm</type>
          </os>
          <devices>
            <disk type='file' device='disk'>
              <driver name='qemu' type='qcow2'/>
              <source file='/var/lib/libvirt/images/debug.qcow2'/>
              <target dev='vda' bus='virtio'/>
            </disk>
            <interface type='network'>
              <source network='default'/>
            </interface>
            <console type='pty'>
              <target type='virtio' port='0'/>
            </console>
          </devices>
        </domain>
      4. virsh start debug && virsh console debug

      Results

      After less than a minute, kernel boot messages should appear in the console. When it's not working, these logs will stay on the screen:

      instantiating rtas at 0x000000002fff0000... done
      prom_hold_cpus: skipped
      copying OF device tree...
      Building dt strings...
      Building dt structure...
      Device tree strings 0x0000000009ee0000 -> 0x0000000009ee0b71
      Device tree struct  0x0000000009ef0000 -> 0x0000000009f00000

       

      After this happens, you can run virsh destroy debug; virsh edit debug and add a <console type='pty'/> node inside the {{<devices> node{}}}

      With these changes, the VM will boot (virsh start debug && virsh console)

       

            thuth@redhat.com Thomas Huth
            rhn-engineering-cfergeau Christophe Fergeau
            Thomas Huth Thomas Huth
            Min Deng Min Deng
            Votes:
            0 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated:
              Resolved: