Project

General

Profile

Actions

Bug #15373

closed

Firewall Logs Dashboard widget update interval does not behave as expected

Added by Jim Pingle 8 months ago. Updated about 1 month ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
Dashboard
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Plus Target Version:
24.11
Release Notes:
Default
Affected Version:
Affected Architecture:

Description

The update interval on the dashboard widget does not behave as expected. It appears to have a problem with any interval which is not a multiple of 5 seconds. This is because the user input interval is divided by 5 and set as the frequency, and then that value is run through a mod operation and only fires if the result is 0.

From log.widget.php:

logsObject.freq = <?=$nentriesinterval?>/5;

From index.php:

                if (((ajaxcntr % freq) === 0) && (typeof ajaxspecs[ajaxidx].callback === "function" )) {
                    make_ajax_call(ajaxspecs[ajaxidx]);
                }

Unless I'm misreading that code, it looks like unless the interval is a multiple of 5 the result of ajaxcntr % freq could never be 0.

So we either need to lock the input to multiples of 5, or fix that calculation so it sets a compatible value for freq.


Files

firewall_log.png (52.1 KB) firewall_log.png GChuf 6, 09/16/2024 08:29 PM

Related issues

Related to Bug #12673: Firewall Logs Dashboard Widget is slow and may fail to updateResolvedJim Pingle

Actions
Related to Bug #15725: Dashboard widgets refresh at unintended intervalsResolvedMarcos M

Actions
Actions #1

Updated by Jim Pingle 8 months ago

  • Related to Bug #12673: Firewall Logs Dashboard Widget is slow and may fail to update added
Actions #2

Updated by Jim Pingle 6 months ago

  • Plus Target Version changed from 24.07 to 24.08
Actions #3

Updated by Danilo Zrenjanin 5 months ago

  • Status changed from New to Confirmed

Tested against:

24.03-RELEASE (amd64)
built on Mon May 13 15:17:00 MSK 2024
FreeBSD 15.0-CURRENT

I was able to reproduce this. When I set the update interval to 9 seconds, the widget did not update for a few minutes. However, the setup worked as expected when I changed the interval to 10 seconds. Adding seconds to time records in the Firewall Logs Dashboard widget would be helpful.

Actions #4

Updated by Jim Pingle 2 months ago

  • Related to Bug #15725: Dashboard widgets refresh at unintended intervals added
Actions #5

Updated by GChuf 6 2 months ago

I was also able to reproduce the problem.
From what I can tell you're reading the code correctly Jim ...
I think the obvious thing here is to get rid of the division. I don't think any other widgets divide the frequency input so modulo works as intended.

I applied the fix in this PR: https://github.com/pfsense/pfsense/pull/4699 and tested it (after I've applied the fixes in #15725).
I also made another commit to display seconds as suggested by Danilo, which seems very reasonable to me.

The widget seems to behave normally now (tested with 6 seconds, v2.7.2):

Actions #6

Updated by GChuf 6 about 2 months ago

  • Status changed from Confirmed to Feedback
  • % Done changed from 0 to 100
Actions #7

Updated by Jim Pingle about 2 months ago

  • Subject changed from Firewall Logs Dashboard Widget update interval does not behave as expected to Firewall Logs Dashboard widget update interval does not behave as expected
Actions #8

Updated by Jim Pingle about 1 month ago

  • Plus Target Version changed from 24.08 to 24.11
Actions #9

Updated by Christopher Cope about 1 month ago

  • Status changed from Feedback to Resolved

Tested on

24.11-ALPHA (amd64)
built on Fri Oct 18 15:52:00 UTC 2024
FreeBSD 15.0-CURRENT

It's refreshing correctly on all tested intervals, including ones not divisible by 5. Marking resolved.

Actions

Also available in: Atom PDF