Bug #14435
openPHP error with limiters
0%
Description
On 23.05:
trying to create a traffic shaper in the limiter tab after putting the value and saving the changes I get the below error
[30-May-2023 13:57:37 Asia/Kabul] PHP Fatal error: Uncaught TypeError: Unsupported operand types: string - int in /etc/inc/shaper.inc:5526 Stack trace: #0 /usr/local/www/firewall_shaper_vinterface.php(212): dnpipe_find_nextnumber() #1 {main} thrown in /etc/inc/shaper.inc on line 5526
Updated by Jim Pingle over 1 year ago
- Status changed from New to Feedback
I cannot reproduce this on a clean install either by creating a new limiter or creating a second limiter. The VM had no shaper configuration of any kind to start with.
We may need to know what was already in their config.xml in terms of limiters (dnpipe tags and so on), and we need a specific set of steps required to trigger the error.
Updated by Danilo Zrenjanin over 1 year ago
If there is an existing limiter named 'new' the GUI doesn't allow adding a new Limiter. Instead, it opens the page for defining a child limiter for the 'new' limiter. Maybe it's unrelated but that's what I got when trying to replicate the issue.
Updated by Marcos M over 1 year ago
System logs show:
May 30 18:00:15 Mazar-Primary-Firewall php-cgi[29449]: rc.filter_configure_sync: The command '/sbin/dnctl /tmp/rules.limiter' returned exit code '64', the output was 'Line 178: need a pipe/flowset/sched number' [...] May 30 18:13:45 Mazar-Primary-Firewall php-fpm[698]: /firewall_shaper_vinterface.php: Configuration Change: admin@103.18.163.150 (Local Database): Traffic Shaper: Queue deleted May 30 18:13:45 Mazar-Primary-Firewall kernel: do_config invalid delete type 3 [...] May 30 18:14:38 Mazar-Primary-Firewall php-fpm[698]: /firewall_shaper_vinterface.php: The command '/sbin/dnctl pipe delete ' returned exit code '64', the output was 'dnctl: missing rule specification' May 30 18:14:38 Mazar-Primary-Firewall php-fpm[698]: /firewall_shaper_vinterface.php: The command '/sbin/dnctl sched delete ' returned exit code '64', the output was 'dnctl: missing rule specification'
I don't have the state of config.xml
when these errors were generated. It's possible that this is at least related to #13687 given that the config contains the following (unclear if this was before or after the above errors):
<queue> <name>new</name> <number>133</number> <qlimit></qlimit> <plr></plr> <description></description> <bandwidth> <item> <bw>1</bw> <burst></burst> <bwscale>Mb</bwscale> <bwsched>none</bwsched> </item> </bandwidth> <enabled>on</enabled> <buckets></buckets> <mask>srcaddress</mask> <maskbits>32</maskbits> <maskbitsv6>128</maskbitsv6> <delay>0</delay> <sched>wf2q+</sched> <aqm>droptail</aqm> <ecn></ecn> </queue>
Updated by Jordan G over 1 year ago
could be related, but if you already have a limiter and child queue created, saving the limiter again presents the apply button, switch to the child queue rather than applying, then once viewing the child, the apply button is still present from the previous save, if you now hit apply (without saving or changing anything on the child's page) you get an error along with a blank/new limiter with taildrop and FIFO selected, yet the drop down states wcw-fairq would be default, not FIFO.
The following input errors were detected: At least one bw specification is necessary. Selected scheduler not recognized.
If this belongs in a different report lmk
Updated by Marcos M over 1 year ago
- Status changed from Feedback to New
The issues in the previous comments are known:
#note-2 - https://redmine.pfsense.org/issues/13687
#note-4 - https://redmine.pfsense.org/issues/13158