Project

General

Profile

Actions

Bug #15948

open

GUI times out when attempting to view large Configuration History

Added by Pawel Piaskowy 4 months ago. Updated about 1 month ago.

Status:
Confirmed
Priority:
Low
Category:
Backup / Restore
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Release Notes:
Default
Affected Plus Version:
24.11
Affected Architecture:
6100, 7100

Description

Hi,

Whenever I click Diagnostic / Backup & Restore / tab Configuration History I am getting "unanswering browser" (page loading).
Within some time / few minutes I get screen like attached.

And in GUI I can find:

Crash report begins.  Anonymous machine information:

amd64
15.0-CURRENT
FreeBSD 15.0-CURRENT #0 plus-RELENG_24_11-n256407-1bbb3194162: Fri Nov 22 05:08:46 UTC 2024     root@freebsd:/var/jenkins/workspace/pfSense-Plus-snapshots-24_11-main/obj/amd64/AKWlAIiM/var/jenkins/workspace/pfSense-Plus-snapshots-24_11-main/sources/FreeBS

Crash report details:

PHP Errors:
[21-Dec-2024 00:37:47 Europe/mylocation] PHP Fatal error:  Maximum execution time of 900 seconds exceeded in /etc/inc/xmlparse.inc on line 75

No FreeBSD crash data found.

There is nothing in /var/crash, but in /var/log/system.log I have those entries:

Dec 21 00:37:47 router php-fpm[43934]: /diag_confbak.php: PHP ERROR: Type: 1, File: /etc/inc/xmlparse.inc, Line: 75, Message: Maximum execution time of 900 seconds exceeded
Dec 21 00:37:47 router php-fpm[43934]: /diag_confbak.php: New alert found: PHP ERROR: Type: 1, File: /etc/inc/xmlparse.inc, Line: 75, Message: Maximum execution time of 900 seconds exceeded
Dec 21 00:37:48 router php-cgi[24014]: notify_monitor.php: Message sent to some@notification.email.com OK

BTW. I have 2 routers in different locations running pfsense+ 24.11 (7100 DT and 6100) and they are both crashing in similar manner when trying to access mentioned page in webGUI.


Files

pfsense_2411_crash.png (31.1 KB) pfsense_2411_crash.png Diagnostic / Backup & Restore / tab Configuration History effect Pawel Piaskowy, 12/21/2024 11:46 PM
Actions #1

Updated by Kris Phillips 4 months ago

  • Status changed from New to Confirmed

Tested on both 24.11 and 25.03-DEVELOPMENT. Unable to recreate this problem. However, when loading on my box with significantly more change history, it did hang for a fair bit when loading the page and failed to load once. Seems there is some sort of process hanging that could cause this situation.

Marking as Confirmed, as I was able to recreate a page hang.

Actions #2

Updated by Jeff Kuehl 4 months ago

v 24.11: I have been receiving the same issue too. Unable to get to Config history, just get crash reporter. I have had multiple reboots, and each instance same crash, but not detail is provided.

Actions #3

Updated by Jim Pingle 4 months ago

  • Subject changed from webGUI crash - Maximum execution time of 900 seconds exceeded to GUI times out when attempting to view large Configuration History
  • Category changed from Web Interface to Backup / Restore
  • Assignee set to Christian McDonald

The config history on Plus also looks into ZFS BE entries, so the more boot environments you have, the longer it will take to build the list.

There may be some way to limit that or refine the behavior, though.

Actions #4

Updated by Seth Cummings about 1 month ago

Jim Pingle wrote in #note-3:

The config history on Plus also looks into ZFS BE entries, so the more boot environments you have, the longer it will take to build the list.

There may be some way to limit that or refine the behavior, though.

I get same thing too. pfSense Plus 24.11 (Have seen it on multiple prior versions too).

The fix should be easy. Why doesn't Netgate simply do a diff on the first two config files with the first query. then run diff on next two with a separate queuery.

Then show the GUI page as soon as the first diff results come back, and show a "loading" while the results from each of the other queries come in.

This would allow the pate to load MUCH faster (even on underpowered hardware), and also avoid issues with php timeout.

Alternatively you could do a diff on the first config file, then show the date for all others (with the "Configuration Change" part blank. Then you could simply have a "calculate diff" button in the "Configuration Change" column that could be manually pressed.

You could also, easily, just do a check on the size of the config files and when someone clicks "Configuration History" page, simply skip running diff on all files and run it just on the first one and prompt the user "looks like your config file is large, diff on first file was completed, if you need diff on other ones click "calculate diff" button on specific file you need information on.

Actions

Also available in: Atom PDF