[pve-devel] [PATCH manager v2] fix #5894: pvestatd: improve broadcast of node version-info
Aaron Lauterer
a.lauterer at proxmox.com
Mon Jul 14 10:25:18 CEST 2025
sent a rebased v3:
https://lore.proxmox.com/pve-devel/20250714082358.56826-1-a.lauterer@proxmox.com/
On 2025-02-27 15:33, Aaron Lauterer wrote:
> Until now, the pvestatd did broadcast the pve-manager version only once
> after startup of the service. But there are some situations, where the
> local pmxcfs (pve-cluster) restarts and loses that information.
> Basically everytime we restart the pmxcfs without restarting pvestatd
> too.
>
> For example, on a cluster join, or if the pmxcfs has been restarted
> manually.
>
> By additionally checking if the local kv-store of the pmxcfs has any
> version info for the node, we can decide if another broadcast is
> necessary.
> Therefore after the next run of pvestatd, we should have the full
> version info available again.
>
> Signed-off-by: Aaron Lauterer <a.lauterer at proxmox.com>
> ---
> changes since v2:
> * use scalar() around check if keys are present
> * mention bug this fixes
>
> PVE/Service/pvestatd.pm | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/PVE/Service/pvestatd.pm b/PVE/Service/pvestatd.pm
> index 7fa003fe..ff9a5c8b 100755
> --- a/PVE/Service/pvestatd.pm
> +++ b/PVE/Service/pvestatd.pm
> @@ -527,7 +527,10 @@ sub update_sdn_status {
>
> my $broadcast_version_info_done = 0;
> my sub broadcast_version_info : prototype() {
> - if (!$broadcast_version_info_done) {
> + if (
> + !$broadcast_version_info_done
> + || !scalar(keys PVE::Cluster::get_node_kv('version-info', $nodename)->%*)
> + ) {
> PVE::Cluster::broadcast_node_kv(
> 'version-info',
> encode_json(PVE::pvecfg::version_info()),
More information about the pve-devel
mailing list