[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