PHP Fatal error : Cannot access offset of type string on string /usr/local/www/status_interfaces.php:137
-
@superpaul209 said in PHP Fatal error : Cannot access offset of type string on string /usr/local/www/status_interfaces.php:137:
Is it planned to be resolved soon
It seems to be planned for the May release; https://redmine.pfsense.org/versions/71
-
It's marked as 23.05 for the target but it will likely be fixed much sooner than that and when that happens it can be added via the system patches package.
-
You can install the System Patches package and then create an entry for the diff below to apply the patch:
diff --git a/src/usr/local/www/status_interfaces.php b/src/usr/local/www/status_interfaces.php index 77a0071870..2dd1d7fa16 100644 --- a/src/usr/local/www/status_interfaces.php +++ b/src/usr/local/www/status_interfaces.php @@ -134,8 +134,8 @@ foreach ($ifdescrs as $ifdescr => $ifname): $ifhwinfo = $ifinfo['hwif']; $vlan = interface_is_vlan($ifinfo['hwif']); - if ($vlan && is_array($config['switches']['switch'][0]['vlangroups']['vlangroup'])) { - foreach ($config['switches']['switch'][0]['vlangroups']['vlangroup'] as $vlangroup) { + if ($vlan) { + foreach (config_get_path('switches/switch/0/vlangroups/vlangroup', []) as $vlangroup) { if ($vlangroup['vlanid'] == $vlan['tag']) { $ifhwinfo .= ', switchports: ' . $vlangroup['members']; break;
-
@jimp This patch has been applied successfully on my SG-3100. I can look the interfaces page again without a fatal error, thank you !
-
@stephenw10 said in PHP Fatal error : Cannot access offset of type string on string /usr/local/www/status_interfaces.php:137:
<vlangroups></vlangroups>
Hi, I got the same PHP python reference error upgrading to 23.01 on SG-3100. I looked at the config file I was successfully using under 22.05 and couldn't find the exact line above you note that should be deleted.
23.01-RELEASE (arm)
built on Fri Feb 10 20:06:58 UTC 2023
FreeBSD 14.0-CURRENTThe system is on the latest version.
Version information updated at Mon Apr 17 17:29:10 EDT 2023Here is what I found in the config file - can you advise whether I should delete one or more lines in this file?
Thanks....<switches>
<switch>
<device>/dev/etherswitch0</device>
<vlanmode>DOT1Q</vlanmode>
<vlangroups>
<vlangroup>
<vgroup>1</vgroup>
<vlanid>4081</vlanid>
<descr><![CDATA[Display port 1]]></descr>
<members>1 5t</members> -
You have at least 1 vlan group defined so whatever you're hitting it's not the same bug.
Are you seeing exactly the same php error?
Can we see your complete switches section from the config?Steve
-
Steve, I didn't save the crash or php files, thinking they would be available inside the pfsense GUI as a selection, so don't have. But the error had to do with loss of a string reference and might have been in the PFBlockerNG application. Sorry to be vague. Although I configured the gateway and vLANS myself, I am still pretty much a newbie at this stuff.
I have been running this config of pfSense for 2+ years and didn't have any problems with three releases of pFSense until this one. Despite the fatal error, things seem to be working, but unless there maybe a fix in the near term, I will revert to the previous release of pfsense.
The file below is a cutout of the switches section of the config file I was using at the time of the system upgrade.
Thanks so much for your assistance.
Bill -
Steve,
Couldn't access the Crash report.here are the contents of the PHP file:
[17-Apr-2023 17:25:59 US/Eastern] PHP Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /usr/local/pkg/pfblockerng/pfblockerng.inc:1475
Stack trace:
#0 /usr/local/pkg/pfblockerng/pfblockerng.inc(7241): pfb_build_if_list(true, false)
#1 /usr/local/pkg/pfblockerng/pfblockerng.inc(10790): sync_package_pfblockerng()
#2 /etc/inc/pkg-utils.inc(781) : eval()'d code(1): pfblockerng_php_pre_deinstall_command()
#3 /etc/inc/pkg-utils.inc(781): eval()
#4 /etc/inc/pkg-utils.inc(1093): eval_once('pfblockerng_php...')
#5 /etc/rc.packages(80): delete_package_xml('pfBlockerNG-dev...', 'deinstall')
#6 {main}
thrown in /usr/local/pkg/pfblockerng/pfblockerng.inc on line 1475-Bill
-
@bb_aviator said in PHP Fatal error : Cannot access offset of type string on string /usr/local/www/status_interfaces.php:137:
pfblockerng.inc:1475
Ah that's a completely different error. But you can see that's in the deinstall script that runs during the upgrade. It's almost certainly due to the php change at that point and would not be present after upgrading. If you clear the error(s) does it return?
Is that switch config actually from your file? It's invalid xml because there are missing
]
s from several lines. Fort example:
<descr><![CDATA[test_net]></descr>
Should be
<descr><![CDATA[test_net]]></descr>
Steve
-
@stephenw10
Steve,
Thanks for your review of the error message and my misunderstanding of what happened.. PFsense and PFBlocker seem to be working fine.I cleared the message from pfsense and will see if it recurs.
The missing "]" s was simply a transcription error on my part in extracting from the config file.
I confess I don't understand PHP, but wonder why this 'fatal error' never occurred in previous upgrades of PFsense. Could it be that there was a patch to PFblockerNG that occurred since the version I had, and perhaps the fatal error occurred because PFsense had to remove the version previously installed??
Bill
-
It didn't happen in previous releases because php didn't change major versions.
The same thing (or similar) did happen when we moved from php5 to php7 a few years ago. We mitigated numerous php issues in testing but with a major version change like that there were always going to be some we didn't find.
Steve