Problem with HAOS .ova / .qcow2 in Proxmox 8.4.1: guest-ping Timeout & Split Lock Trap

I’ve been running the official Home Assistant OS (.qcow2 image) as a VM on Proxmox 8.4.1 for over a year without major issues — until recently.

I regularly apply Home Assistant updates as they’re released. Over the past few months, however, I’ve noticed the HAOS VM becoming unresponsive. Proxmox then marks the VM with an “internal error” status. In this state, the Home Assistant web interface and CLI are unresponsive and all internal operations are halted.

This time I investigated a little more instead of just restarting the VM.

:jigsaw: Symptoms

Proxmox logs show:

qmp command 'guest-ping' failed - got timeout

This message indicates the root of the internal error: Proxmox is unable to communicate with the VM’s QEMU guest agent.

More helpful insight came from dmesg on the Proxmox host:

x86/split lock detection: #AC: CPU 1/KVM/3302738 took a split_lock trap at address: 0xbff4b050

This suggests the Home Assistant VM (in my case, running HAOS 15.2) is triggering a split lock, which causes a CPU-level trap — likely halting VM performance.

:brain: What Is a Split Lock?

from linux kernel docs section 26.1

A split lock occurs when an atomic memory operation spans two cache lines. This is inefficient and often indicates a misaligned memory access.

On modern Intel CPUs (especially 10th-gen and newer), split locks are treated as fatal traps unless explicitly permitted. In my case, the host CPU is:

Intel(R) Celeron(R) N5105 @ 2.00GHz

This CPU enforces split lock detection, and by default, fails fast when one is encountered.

:white_check_mark: Workaround suggested by ChatGPT

To get things working again, I modified the VM’s CPU configuration:

Before: CPU type was set to host (full passthrough).
After: Changed CPU type to kvm64 (generic virtual CPU).

The kvm64 CPU type doesn’t trigger the split lock trap, which allows the VM to continue operating normally, albeit with a more generic CPU feature set. Time will tell if this change resolves the HAOS VM crash.

:lady_beetle: Possible Bug?

It’s likely this behavior stems from something internal to Home Assistant OS — possibly a bug or compatibility issue with certain CPU features. Please respond to this message if you experience a similar issue. it may be worth filing a bug report for the HAOS development team.

I wrote the draft version of this post, then gave my original text to ChatGPT for a nice update including the clever section icons.

:student: Additional Study

  • I found an in-depth split lock paper.. This behavior may be unique to Intel/AMD processors. ARM processors do not allow it.
  • Proxmox discussion about Split lock detection. Describing command line methods to determine if the CPU supports it and how to modify the kernel response. (It can be ignored instead of the default panic)
  • The split lock feature may have been Intel’s response to the Downfall exploit
    which reaches across cache lines to view data outside a program scope. The default split lock detection behavior panics for the described Downfall exploit. (but it can be disabled) I may be improperly relating these, but the relationship is interesting.

There used to be a lot of problems with the N5105 on proxmox, but they should be fixed in 8.x

I found this link describing the problem with Proxmox and Jasper Lake CPU power management functions. The latest Linux kernel versions have resolved this trouble. The Jasper Lake troubles with Proxmox are not related to Split lock operation and detection which is widely supported on Intel processors. It is a function of application software behavior.