Hi everyone,
I found a SDN status issue in PVE 9.2.x. After a node reboot or temporary network outage, the recovered node increments its local SDN configuration version, leaving all other healthy nodes on the old version (flagged as
Confirmed on: 9.2.2, 9.2.3 (`libpve-network-perl` 1.6.6)
Not observed on: 9.1.1 (`libpve-network-perl` 1.2.3)
Summary
After a node reboot or NIC-down event (HA fencing test), only the recovered node gets its
old version and are immediately flagged as
Running `Apply` from the GUI restores all nodes to
on every subsequent reboot or NIC failure. **Reproducibility: 100%.**
There is no impact on VM connectivity — the issue is limited to the SDN status display.
Environment
| | 9.1.1 (not affected) | 9.2.3 (affected) |
|---|---|---|
| `pve-manager` | 9.1.1 | 9.2.3 |
| `libpve-network-perl` | **1.2.3** | **1.6.6** |
| Cluster | 3-node | 3-node |
| SDN zone types | Simple (OVS VLAN) + VXLAN | Simple (OVS VLAN) + VXLAN |
Steps to reproduce (9.2.x)
1. Apply SDN from GUI — confirm all nodes show `available`.
2. Reboot any one node (or bring down all NICs to trigger HA fence).
3. Wait for the node to rejoin the cluster.
4. Check SDN status — the recovered node shows `available`, all others show `pending`.
Before reboot / NIC-down (all nodes in sync)
After pve03 reboot / NIC-down (version increments only on the recovered node)
Resulting SDN status
Questions
Is there a way to prevent the rejoining node from advancing its local SDN version?
Is there any workaround other than manually clicking "Apply" in the GUI after every reboot?
I found a SDN status issue in PVE 9.2.x. After a node reboot or temporary network outage, the recovered node increments its local SDN configuration version, leaving all other healthy nodes on the old version (flagged as
pending).Confirmed on: 9.2.2, 9.2.3 (`libpve-network-perl` 1.6.6)
Not observed on: 9.1.1 (`libpve-network-perl` 1.2.3)
Summary
After a node reboot or NIC-down event (HA fencing test), only the recovered node gets its
/etc/network/interfaces.d/sdn #version incremented. The other nodes are left on theold version and are immediately flagged as
pendingRunning `Apply` from the GUI restores all nodes to
available, but the issue reappearson every subsequent reboot or NIC failure. **Reproducibility: 100%.**
There is no impact on VM connectivity — the issue is limited to the SDN status display.
Environment
| | 9.1.1 (not affected) | 9.2.3 (affected) |
|---|---|---|
| `pve-manager` | 9.1.1 | 9.2.3 |
| `libpve-network-perl` | **1.2.3** | **1.6.6** |
| Cluster | 3-node | 3-node |
| SDN zone types | Simple (OVS VLAN) + VXLAN | Simple (OVS VLAN) + VXLAN |
Steps to reproduce (9.2.x)
1. Apply SDN from GUI — confirm all nodes show `available`.
2. Reboot any one node (or bring down all NICs to trigger HA fence).
3. Wait for the node to rejoin the cluster.
4. Check SDN status — the recovered node shows `available`, all others show `pending`.
Before reboot / NIC-down (all nodes in sync)
Bash:
# head -1 /etc/network/interfaces.d/sdn
pve01: #version:58
pve02: #version:58
pve03: #version:58
After pve03 reboot / NIC-down (version increments only on the recovered node)
Bash:
# head -1 /etc/network/interfaces.d/sdn
pve01: #version:58
pve02: #version:58
pve03: #version:59 ← only the recovered node is incremented
Resulting SDN status
Code:
pve01: pending (still on version:58 — judged as too old)
pve02: pending (still on version:58 — judged as too old)
pve03: available (updated to version:59)
Questions
Is there a way to prevent the rejoining node from advancing its local SDN version?
Is there any workaround other than manually clicking "Apply" in the GUI after every reboot?