Project

General

Profile

Actions

Bug #11650

open

FRR configuration broken on restore of manually edited FRR config sections

Added by Andrew Green about 3 years ago. Updated about 3 years ago.

Status:
New
Priority:
Very Low
Assignee:
-
Category:
FRR
Target version:
-
Start date:
03/10/2021
Due date:
% Done:

0%

Estimated time:
Plus Target Version:
Affected Version:
Affected Plus Version:
Affected Architecture:

Description

SG-3100
21.02-RELEASE-p1 (arm)
built on Mon Feb 22 09:38:52 EST 2021

FRR package version 1.1.0_8

I could not find any instructions to remove all of a package's configuration so I did this:

- Made a config backup
- Edited the config xml and remove the FRR config references but left the package sections in place with empty <config></config> sections inside.
- Restored the config
- Router rebooted and reinstalled packages
- Went to reconfigure FRR and it broke sometimes when saving the settings.
- I managed to make the error go away after adding and deleting a prefix list.
- Here is the PHP error:


arm
12.2-STABLE
FreeBSD 12.2-STABLE 0e42b7d7eac(HEAD) pfSense-SG-3100

Crash report details:

PHP Errors:
[09-Mar-2021 21:46:49 America/St_Johns] PHP Fatal error:  Uncaught Error: Only variables can be passed by reference in /usr/local/pkg/frr/inc/frr_zebra.inc:295
Stack trace:
#0 /usr/local/pkg/frr/inc/frr_zebra.inc(758): frr_zebra_generate_prefixlists(true, false)
#1 /usr/local/pkg/frr.inc(683): frr_generate_config_zebra()
#2 /usr/local/www/pkg_edit.php(245) : eval()'d code(1): frr_generate_config()
#3 /usr/local/www/pkg_edit.php(245): eval()
#4 {main}
  thrown in /usr/local/pkg/frr/inc/frr_zebra.inc on line 295
[09-Mar-2021 21:47:15 America/St_Johns] PHP Fatal error:  Uncaught Error: Only variables can be passed by reference in /usr/local/pkg/frr/inc/frr_zebra.inc:295
Stack trace:
#0 /usr/local/pkg/frr/inc/frr_zebra.inc(758): frr_zebra_generate_prefixlists(true, false)
#1 /usr/local/pkg/frr.inc(683): frr_generate_config_zebra()
#2 /usr/local/www/pkg_edit.php(245) : eval()'d code(1): frr_generate_config()
#3 /usr/local/www/pkg_edit.php(245): eval()
#4 {main}
  thrown in /usr/local/pkg/frr/inc/frr_zebra.inc on line 295
[09-Mar-2021 21:47:30 America/St_Johns] PHP Fatal error:  Uncaught Error: Only variables can be passed by reference in /usr/local/pkg/frr/inc/frr_zebra.inc:295
Stack trace:
#0 /usr/local/pkg/frr/inc/frr_zebra.inc(758): frr_zebra_generate_prefixlists(true, false)
#1 /usr/local/pkg/frr.inc(683): frr_generate_config_zebra()
#2 /usr/local/www/pkg_edit.php(245) : eval()'d code(1): frr_generate_config()
#3 /usr/local/www/pkg_edit.php(245): eval()
#4 {main}
  thrown in /usr/local/pkg/frr/inc/frr_zebra.inc on line 295
[09-Mar-2021 21:47:36 America/St_Johns] PHP Fatal error:  Uncaught Error: Only variables can be passed by reference in /usr/local/pkg/frr/inc/frr_zebra.inc:295
Stack trace:
#0 /usr/local/pkg/frr/inc/frr_zebra.inc(758): frr_zebra_generate_prefixlists(true, false)
#1 /usr/local/pkg/frr.inc(683): frr_generate_config_zebra()
#2 /usr/local/www/pkg_edit.php(245) : eval()'d code(1): frr_generate_config()
#3 /usr/local/www/pkg_edit.php(245): eval()
#4 {main}
  thrown in /usr/local/pkg/frr/inc/frr_zebra.inc on line 295
[09-Mar-2021 21:49:51 America/St_Johns] PHP Fatal error:  Uncaught Error: Only variables can be passed by reference in /usr/local/pkg/frr/inc/frr_zebra.inc:262
Stack trace:
#0 /usr/local/pkg/frr/inc/frr_zebra.inc(764): frr_zebra_generate_aspaths()
#1 /usr/local/pkg/frr.inc(683): frr_generate_config_zebra()
#2 /usr/local/www/pkg_edit.php(245) : eval()'d code(1): frr_generate_config()
#3 /usr/local/www/pkg_edit.php(245): eval()
#4 {main}
  thrown in /usr/local/pkg/frr/inc/frr_zebra.inc on line 262
[09-Mar-2021 21:49:55 America/St_Johns] PHP Fatal error:  Uncaught Error: Only variables can be passed by reference in /usr/local/pkg/frr/inc/frr_zebra.inc:262
Stack trace:
#0 /usr/local/pkg/frr/inc/frr_zebra.inc(764): frr_zebra_generate_aspaths()
#1 /usr/local/pkg/frr.inc(683): frr_generate_config_zebra()
#2 /usr/local/www/pkg_edit.php(245) : eval()'d code(1): frr_generate_config()
#3 /usr/local/www/pkg_edit.php(245): eval()
#4 {main}
  thrown in /usr/local/pkg/frr/inc/frr_zebra.inc on line 262
[09-Mar-2021 21:50:03 America/St_Johns] PHP Fatal error:  Uncaught Error: Only variables can be passed by reference in /usr/local/pkg/frr/inc/frr_zebra.inc:262
Stack trace:
#0 /usr/local/pkg/frr/inc/frr_zebra.inc(764): frr_zebra_generate_aspaths()
#1 /usr/local/pkg/frr.inc(683): frr_generate_config_zebra()
#2 /usr/local/www/pkg.php(140) : eval()'d code(1): frr_generate_config()
#3 /usr/local/www/pkg.php(140): eval()
#4 {main}
  thrown in /usr/local/pkg/frr/inc/frr_zebra.inc on line 262

No FreeBSD crash data found.

Actions #1

Updated by Jim Pingle about 3 years ago

  • Subject changed from pfSense Plus FRR configuration broken on restore of empty FRR config sections to FRR configuration broken on restore of manually edited FRR config sections
  • Priority changed from Normal to Very Low

Unless you can replicate this without any sections there at all (Remove them, don't leave them there but empty), I'm not sure there is much we should do here. Nobody should be hand editing the configuration like that, and we can't possibly account for every possible way somebody could incorrectly hand edit configuration data.

Actions #2

Updated by Andrew Green about 3 years ago

Jim Pingle wrote:

Unless you can replicate this without any sections there at all (Remove them, don't leave them there but empty), I'm not sure there is much we should do here. Nobody should be hand editing the configuration like that, and we can't possibly account for every possible way somebody could incorrectly hand edit configuration data.

Yes I agree, there should be an option somewhere in the web interface to purge a packages config sections in case it gets screwed up (like during an upgrade which happened to me, but my issue may be related to #11392).

My initial SG-3100 upgrade to pfSense Plus failed after the first reboot. I managed to recover the router by logging into the recovery shell and deleting a bunch of 0 byte config file backups which broke the config upgrade script and went into an endless loop.

Actions

Also available in: Atom PDF