[pve-devel] [PATCH pve-network 17/17] frr: fix reloading frr configuration
Fabian Grünbichler
f.gruenbichler at proxmox.com
Wed Apr 2 12:37:27 CEST 2025
On March 28, 2025 6:13 pm, Gabriel Goller wrote:
> From: Stefan Hanreich <s.hanreich at proxmox.com>
>
> Reloading the FRR configuration failed, because outfunc was defined as
> an empty hash, but Tools.pm requires it to be a CODE reference, so the
> following error has been thrown on FRR reload:
>
> Not a CODE reference at /usr/share/perl5/PVE/Tools.pm line 577.
>
> Fix this by not providing an outfunc at all (it was empty anyway) and
> for future debugging / error reporting actually include the error in
> the task log.
>
> Signed-off-by: Stefan Hanreich <s.hanreich at proxmox.com>
> Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
> ---
> src/PVE/Network/SDN/Frr.pm | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/PVE/Network/SDN/Frr.pm b/src/PVE/Network/SDN/Frr.pm
> index 7922e27cbfc0..d38a4180ff96 100644
> --- a/src/PVE/Network/SDN/Frr.pm
> +++ b/src/PVE/Network/SDN/Frr.pm
> @@ -68,10 +68,10 @@ sub reload {
>
> if (-e $conf_file && -e $bin_path) {
> eval {
> - run_command([$bin_path, '--stdout', '--reload', $conf_file], outfunc => {}, errfunc => $err);
> + run_command([$bin_path, '--stdout', '--reload', $conf_file], errfunc => $err);
this actually changes the behaviour though - I assume previously we
wanted output to be suppressed here? not specifying outfunc means output
is printed to stdout, unless quiet is set..
> };
> if ($@) {
> - warn "frr reload command fail. Restarting frr.";
> + warn "frr reload command fail: $@ Restarting frr.";
this should probably be two warnings now to remain readable?
> eval { run_command(['systemctl', 'restart', 'frr']); };
> }
> }
> --
> 2.39.5
>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
>
More information about the pve-devel
mailing list