Single Node in Cluster Grayed Out - Logs reflect issue with /usr/lib/x86_64-linux-gnu/perl-base/IO/Select.pm line 60

jsalas424

Active Member
Jul 5, 2020
142
3
38
34
A single node is grayed out, this has happened before and succesfully cleared with

Code:
systemctl restart pvestatd

but it keeps recurring so I checked my logs:

1690499134858.pngThere was an uptick around 13:00 so I honed in on that to find that these error messages suddenly started appearing over and over:

1690499188144.png

Full messages:

Code:
status update error: command 'ebtables-save' failed: Modification of a read-only value attempted at /usr/lib/x86_64-linux-gnu/perl-base/IO/Select.pm line 60.

Code:
status update error: command 'iptables-save' failed: Modification of a read-only value attempted at /usr/lib/x86_64-linux-gnu/perl-base/IO/Select.pm line 60.

Code:
message repeated 3 times: [ status update error: command 'iptables-save' failed: Modification of a read-only value attempted at /usr/lib/x86_64-linux-gnu/perl-base/IO/Select.pm line 60.]

etc.

PVE 7.4-16
 
seems something want update your firewall rule. Maybe u are hacked.
 
seems something want update your firewall rule. Maybe u are hacked.
I rebooted the node and the firewall errors stopped, there was definitely something odd.

Although always possible it’s an intrusion, that feels very unlikely given that the only 2 open ports are an SSL port to a 2FA guarded Nextcloud instance and a wireguard VPN.

I also only have default firewall values on Proxmox, I handle everything else on pfsense.

Nonetheless, is there anything else I can look out for? I keeep lots of logs.
 
Last edited:
This has recurred and was once more quickly fixed with `systemctl restart pvestatd`. No firewall log issues so I think that was a red herring, but I did find some more enlightening logs:

Code:
Aug 29 13:04:48 ServerB pvestatd[2470]: lxc console cleanup error: IO::Handle: bad open mode:  at /usr/share/perl5/PVE/Tools.pm line 293.
Aug 29 13:04:48 ServerB pvestatd[2470]: ERROR: panic: attempt to copy freed scalar 5597854c76e0 to 559784dd2378 at /usr/lib/x86_64-linux-gnu/perl-base/IO/File.pm line 53.
Aug 29 13:04:48 ServerB pvestatd[2470]: server closing
Aug 29 13:04:48 ServerB pvestatd[2470]: server stopped
Aug 29 13:04:48 ServerB kernel: pvestatd[2470]: segfault at ff0000000e ip 000055978462e7f8 sp 00007ffcba1e6550 error 4 in perl[559784560000+185000]
Aug 29 13:04:48 ServerB kernel: Code: 48 8b 43 10 48 85 c0 74 c9 83 c2 01 89 53 08 48 8b 30 48 85 f6 74 0a f6 46 0e 10 0f 85 c1 02 00 00 48 8b 70 28 48 85 f6 74 0a <f6> 46 0e 10 0f 85 d6 02 00 00 48 8b 70 20 48 85 f6 74 0a f6 46 0e
Aug 29 13:04:48 ServerB systemd[1]: pvestatd.service: Main process exited, code=killed, status=11/SEGV
Aug 29 13:04:48 ServerB systemd[1]: pvestatd.service: Failed with result 'signal'.
Aug 29 13:04:48 ServerB systemd[1]: pvestatd.service: Consumed 7h 40min 46.201s CPU time.

Here's my corosync config:

Code:
root@ServerB:~# cat /etc/pve/corosync.conf
logging {
  debug: off
  to_syslog: yes
}

nodelist {
  node {
    name: ServerA
    nodeid: 2
    quorum_votes: 1
    ring0_addr: 10.0.0.3
    ring1_addr: 192.168.1.24
  }
  node {
    name: ServerB
    nodeid: 3
    quorum_votes: 1
    ring0_addr: 10.0.0.4
    ring1_addr: 192.168.1.25
  }
  node {
    name: Server
    nodeid: 1
    quorum_votes: 1
    ring0_addr: 10.0.0.2
    ring1_addr: 192.168.1.129
  }
}

quorum {
  provider: corosync_votequorum
}

totem {
  cluster_name: NodeA
  config_version: 5
  interface {
    linknumber: 0
  }
  interface {
    linknumber: 1
  }
  ip_version: ipv4-6
  link_mode: passive
  secauth: on
  version: 2
}
 
Last edited:
Hi,
since you got errors in both IO/Select.pm and IO/File.pm, I'd verify that the Perl installation is correct. You can use apt install debsums and then run debsums -s libperl5.36 perl-base, or to verify all packages (can take a while) debsums -s. If that doesn't show anything wrong, I'd run a memory test just to be sure.
 
Hi,
since you got errors in both IO/Select.pm and IO/File.pm, I'd verify that the Perl installation is correct. You can use apt install debsums and then run debsums -s libperl5.36 perl-base, or to verify all packages (can take a while) debsums -s. If that doesn't show anything wrong, I'd run a memory test just to be sure.
Hi Fiona, thanks for the reply. Here are those results. Should I proceed to memtest?

Code:
root@ServerB:~# debsums -s libperl5.36 perl-base
debsums: package libperl5.36 is not installed

No output for just debsums -s

Code:
root@ServerB:~# debsums -s
root@ServerB:~#

lastly I also checked config files but this all looks correct to me.

Code:
root@ServerB:~# debsums -as
debsums: changed file /etc/issue (from base-files package)
debsums: changed file /etc/lvm/lvm.conf (from lvm2 package)
debsums: changed file /etc/nut/upsmon.conf (from nut-client package)
debsums: changed file /etc/nut/nut.conf (from nut-client package)
debsums: changed file /etc/nut/upsd.users (from nut-server package)
debsums: changed file /etc/nut/upsd.conf (from nut-server package)
debsums: changed file /etc/nut/ups.conf (from nut-server package)
debsums: changed file /etc/vzdump.conf (from pve-manager package)
debsums: changed file /etc/apt/sources.list.d/pve-enterprise.list (from pve-manager package)
debsums: changed file /etc/rsyslog.conf (from rsyslog package)
root@TracheNodeB:~#

I'm running PVE 7.4-16 currently
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!