For about three months now, we’ve been having problems with AlmaLinux 9 VMs not rebooting reliably after installing Updates.
Unfortunately, it does not happen every time and not all VMs have had this behavior. And it does not happen when we reboot a VM without installing updates. That makes it difficult to debug.
It’s always VMs running on OpenStack based clouds, although different clouds from different providers. It’s been happening for VMs I run privately that have been created from the official AlmaLinux 9 cloud images as well as for VMs that we are running at work that have been created from private internal images.
The behavior is always the same:
We run the reboot command.
The VM will initiate the shutdown / reboot procedure
but will hang itself during reboot.
Sending an ACPI Shut down will finally shut down the VM all the way.
Wehn VM is hung, we cannot connect to the VM via SSH and when openting the TTY, no input is registered. Pressing cltr+alt+delet, which usually initiates a reboot, does nothing.
If you have any ideas for how we could try to reproduce the error, or how to debug it without it being reliable, please let us know.
The linked thread on the Proxmox Support Forum makes a few mentions. It took me a bit to find and verify them all. So in order to spare any who come after me the same work, here is what I have found:
This is a bug in the kernel running inside the VMs.
It was initially introduced with commit 5a838e5d5825 «drm/qxl: simplify qxl_fence_wait».
Later the issues we’re having have been discovered and described in Bug#1054514.
This bug was resolved in commit 07ed11afb68d «Revert “drm/qxl: simplify qxl_fence_wait”» by reverting the first commit.
As a result of that, the initial commit was then re-applied in commit 3628e0383dd3 «Reapply “drm/qxl: simplify qxl_fence_wait”»
When doing so, the reality of re-introducing a known bug, was willingly accepted.
During this discussion, several kernel developers expressed the opinion, that qxl should no longer be used, most notably David Airlie from RedHat the discussion spawned from the above commit.
I can’t recommend anyone use qxl hw over virtio-gpu hw in their VMs, since virtio-gpu is actually hw designed for virt.
The initial bug linked above contains a useful script to reproduce the problems.
P.s. I would have linked all the commits, but the forum software won’t let me put more than two links in my post, so…