Traffic Shaping in 23.01 - Bug?
-
Anecdotally, I noticed that the very vanilla (wizard-created) Traffic Shaper ruleset that I have relied on for years acts very differently in 23.01. It seems to be cutting my speeds in half (without the traffic shaper, I get ~320mbps down; with the traffic shaper, I now get approximately 160-200mbps down).
The upper bandwidth limit in the (now-disabled shaper) is set at about 320mbps. This all worked dandily before 23.01. I only have special priorities set for FaceTime and IPSEC, neither of which were in use during any of these tests.
Any chance there is a bug with the traffic shaper as of the new release?
-
@drewsaur (Writing to myself) - Well, yes, there is a bug.
When I go into re-enable my simple rules, I get this:
Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:773 Stack trace: #0 /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc(694): apply_all_chosen_items() #1 /usr/local/www/wizard.php(116) : eval()'d code(1): step8_stepsubmitphpaction() #2 /usr/local/www/wizard.php(116): eval() #3 {main} thrown in /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc on line 773 PHP ERROR: Type: 1, File: /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc, Line: 773, Message: Uncaught TypeError: Cannot access offset of type string on string in /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:773 Stack trace: #0 /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc(694): apply_all_chosen_items() #1 /usr/local/www/wizard.php(116) : eval()'d code(1): step8_stepsubmitphpaction() #2 /usr/local/www/wizard.php(116): eval() #3 {main} thrown
And the following PHP_errors.log:
[17-Feb-2023 16:41:55 America/New_York] PHP Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:773
Stack trace:
#0 /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc(694): apply_all_chosen_items()
#1 /usr/local/www/wizard.php(116) : eval()'d code(1): step8_stepsubmitphpaction()
#2 /usr/local/www/wizard.php(116): eval()
#3 {main}
thrown in /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc on line 773 -
Can anyone else confirm or refute this apparent bug?
-
@drewsaur Well it seems to be a known issue: https://redmine.pfsense.org/issues/13915 - I hope we don't have to wait till 23.05 to get this fixed...
-
@drewsaur I upgraded last night and speed tests are as expected for me. Netgate 2100 using PRIQ. Didnโt try the wizard!
-
@steveits said in Traffic Shaping in 23.01 - Bug?:
@drewsaur I upgraded last night and speed tests are as expected for me. Netgate 2100 using PRIQ. Didnโt try the wizard!
I am using the vanilla, default, HFSC. I would try to mess around with other types, but I can't rerun the Wizard anymore. I wish that someone could help me figure out how to work around this bug, or that it would get more attention...
-
@drewsaur Jim, on the Redmine, is a Netgate developer. They are probably prioritizing the canโt-boot-after-upgrade issue on the 1100/2100 at the moment. 23.01 was a PHP major version upgrade so I was personally expecting a bunch of little corner cases to show up despite the extra time on this โ22.09โ release.
All that said if you change the bandwidth on the shaper, does it affect your results? (Without running the wizard) I have not use HFSC but with others I can change it directly on the WAN, qVOIP, etc links/pages.
-
@steveits Thanks. I bet you are right. I don't have a shaper left anymore, so I can't change it. I removed the shaper altogether before re-running the wizard. I have backups, but I don't really feel like restoring from one at this point, because I don't see a reason to mess around with settings that make innate sense the way they were, and also I am willing to wait this out so long as I know it's being addressed.
-
@drewsaur I meant to add, if it's easily fixable they will probably add it as a patch in the System Patches package so it's installable before 22.05.
-
@steveits said in Traffic Shaping in 23.01 - Bug?:
@drewsaur I meant to add, if it's easily fixable they will probably add it as a patch in the System Patches package so it's installable before 22.05.
That would be wonderful.
-
Is this bug going to get any attention? Is there any additional detail I can provide to help move this along?
-
Same here. interested in a fix as well.
-
With some trial and error I was able to use the wizard to create a CBQ-based shaper config. But I would need a HFSC-config (to be able to guarantee a minimum bandwidth to some VLAN ...). Looking forward to any clever patch here, thanks.
-
-
Same issue here!
-
@dwren78 The line numbers above and in the redmine differ, but
looking at the code (traffic_shaper_wizard_multi_all.inc:773) they are all the same line, just different step numbers:if ($config['ezshaper']['step3']['enable']) {
Per https://docs.netgate.com/pfsense/en/latest/development/php-config-arrays.html#examples that's the old PHP 7 style. Seems like it just needs updating.
So, completely untested, it might be something like:
if (config_path_enabled('ezshaper/step3', 'enable')) {
? That would probably mean updating all the "step" code in that file though. (Diagnostics/Edit File, though I'd make a backup first).
Are all you re-running the wizard or running it for the first time? If this is only an issue re-running it, possibly removing the
<ezshaper></ezshaper>
entry in the config would help. Or, if it's a first-time-run issue, adding it...there is a config section in the redmine. -
@steveits Hi Steve,
Okay sorry about this but I don't fully understand everything you said.
I can see as you correctly pointed out my redmine post is different to as you said above.
This is the first time running the wizard as I've no other traffic shaping setup and need to prioritise video streaming on a specific vLAN/Interface.
I'm not sure which file I should be editing as the error references more than one:
/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc:717
/usr/local/www/wizards/traffic_shaper_wizard_dedicated.inc(626)
/usr/local/www/wizard.php(116)Note: this also happens when trying the multi-interface wizard.
Which file should I be editing and what exactly should I be doing with the code you posted? Adding it at a specific place? Replacing code?
Sorry, I just have no clue as i'm not a coder in any shape or form.
Thanks for your help.
-
@dwren78 I was mostly stream-of-consciousness writing.
The first line of the error is
Uncaught TypeError: Cannot access offset of type string on string in /usr/local/www/wizards/traffic_shaper_wizard_multi_all.inc:773So that file, line 773. There are several "if ($config['ezshaper']['step_']" lines around that area...did not look at the entire file, or traffic_shaper_wizard_dedicated.inc. I am slightly rusty with PHP and unfortunately don't have a lot of time so was just throwing this out there. Replacing each of those "step" lines with the new format might work? However if that wasn't converted, there are likely other places in the file that need converting though.
This error is all over the forums for random places in the code...the change from PHP 7 to 8 was not trivial and there are evidently several things that didn't get caught in testing.
FWIW the Dedicated wizard is for pairing LAN and WAN links so is rarely used. It's not labeled well in the web GUI.
-
@steveits I think i'm just going to have to wait for them to resolve it.
Thank you for your help!
-
@dwren78 System Patches package was updated today with this fix.
https://forum.netgate.com/topic/178792/system-patches-package-version-2-2-x/35 -
@steveits And it is fixed! Whew. Now if I can just get the box to check for updates reliably, which is yet another new issue, albeit a minor one!