pvestatd halts causing status of VMs to disappear

sop

New Member
Jul 1, 2023
1
0
1
Hi,

I'm having problem with the status of VMs and LXCs disappearing and leaving a question mark. I've had this before on earlier releases of proxmox, but at one point on proxmox 7 it was gone, but I recently did a clean install of proxmox 8, and now it's back.

So I figured out that the pvestatd service halts without any errors logged.
It looks like reading /proc/xx/cmdline is what's halting the script.

Here's the trace:
In file pvestatd.pm:
update_status() -> remove_stale_lxc_consoles() -> PVE::LXC::find_lxc_console_pids();

In file LXC.pm "sub find_lxc_console_pids()":
$cmdline = PVE::Tools::file_read_firstline("/proc/$pid/cmdline");

In my case it halted on this pid:
Code:
# cat /proc/1429/status
Name: pve-firewall
Umask: 0022
State: D (disk sleep)

I haven't used or configured the firewall, but I've been messing around with the networking, adding a wireguard tunnel and a gretap tunnel, but I don't know if that's relevant.

Looks like halting read on /proc/*/cmdline is a common error, is it possible to add a read timeout to the read_firstline() function and have it report error instead of halting? Or check the state before trying to read it?
 
Last edited: