Webconfigurator Hangs
-
Got some news after some tweak / test.
I fixed the problem by enabling the option "Enable Device Polling" under Networking.
Was kinda surprised that fix my problem, on the stable release i never had this enabled.
Hope it helps maybe on the development :)
Edit:
Suppose i have 2 PPP connection, PPP1 and PPP2.
I tried to disable again the Device polling.
I have on WAN interface PPP1 connection, i want to swap on PPP2.After 5 - 10 min i got back to the PC and it have again PPP1, without me changing it.
I've enabled again Device Polling and it's fine again.
I'm quite concerned about that behaviour :\
-
Hm - having similar issues (with Firefox 12) when loading new screens in general -
Was curious and noticed that reloading the page helped sometimes.Also when i do a rude killall php it continues to load the screen, so i think theres a blocking php call.
But for sure one cant do that when hes saving/applying something.
Will try the Device polling too and report. …. Amazing ... is much more responsive - but hangs are still there for me. (on interfaces_ppp_edit for example) Just to compare - when you issue aless /var/log/lighthttp.error.log
Do you see errors like "Broken Pipe" or "Backend Died" during the time you noticed the hang ?
-
I see web GUI hangs when I try to edit PPP Advanced options - see http://forum.pfsense.org/index.php/topic,48499.0.html
@ThorstenK:
Just to compare - when you issue a
less /var/log/lighthttp.error.log
Do you see errors like "Broken Pipe" or "Backend Died" during the time you noticed the hang ?
No. Most (all?) pfSense logs are circular logs which should be displayed by the clog utility. On my system the last few lines of the output from clog are:
2012-05-12 23:55:51: (log.c.166) server started
2012-05-12 23:56:06: (log.c.166) server started
clog: ERROR: could not write output (Bad address)(It is now 8:03 on 14 May 2012 and in the last 20 minutes I got a seeming hang in the GUI attempting to edit PPP Options.)
-
Try to get a full ps output from when it's working and when it's hung and compare the two. If it is blocking on exec, the command it's running should appear. (Or it might be easier to spot with pstree, pkg_add -r pstree, look for anything that's a child process of a PHP process under lighttpd.)
The only thing I can think of that the ppp's page does is that it tries to query 3G modems/serial devices to detect ports that are valid to use. It's possible those probes are failing/blocking for some reason.
-
Hi - looking at pstree during an interfaces_ppp hung showed nothing unusual so i commented out get_modem_devices.
Currently the hungs are gone. I will look a bit deeper now.
-
@ThorstenK:
Hi - looking at pstree during an interfaces_ppp hung showed nothing unusual so i commented out get_modem_devices.
Currently the hungs are gone. I will look a bit deeper now.I wonder where the definition of pfSense_get_modem_devices is? I see the reference in /usr/local/www/interfaces_ppps_edit.php
-
oh yeah… currently at the same task tryingto find it.
grep gives me much at pfsense_ but no declaration for pfsense_get_modem_devices so i think this is an export from the pfSense php module. (oh double post) -
It's a function in the pfSense PHP module. Some functions, especially those that deal directly with hardware, were put there for optimization.
-
found it
https://github.com/bsdperimeter/pfsense-tools/blob/master/pfPorts/php52-pfSense-module/files/pfSense.c
Maybe i am able to at least add a timeout in it. Otherway you will see a funny new bug :) -
Yes, it's in the tools repo. It's coded in C and not PHP though.
-
hmm.. Im more into scripting and can hardly read C, but as far i can say, the module has a verbose mode and configureable default timeout of 700 retries.
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|bl", &show_info, &poll_timeout) == FAILURE) { php_printf("Maximum two parameter can be passed\n");
if ((nw = poll(&pfd, 1, poll_timeout)) > 0) {..}
I tried to activate the verbose (show_info) mode with pfSense_get_modem_devices(1,300) but didnt see something relevant popping up at the console or in /tmp/phpError.log. i cant find a poll_timeout– so maybe it tries forever.
Ill open a bug.
-
On my pfSense 2.0.1 system:```
$ find / -type f | xargs grep pfSense_get_modem_devices
Binary file /usr/local/lib/php/20060613/pfSense.so matches
/usr/local/www/interfaces_ppps_edit.php: $serialports = pfSense_get_modem_devices();
grep: /var/etc/dyndns_wandnsomaticall.dnsomatic.com.debug: No such file or directory
grep: /cf/conf/dyndns_wandnsomaticall.dnsomatic.com.cache: No such file or directory
$On my pfSense 2.1 system:``` $ find / -type f | xargs grep pfSense_get_modem_devices Binary file /usr/local/lib/php/20060613/pfSense.so matches Binary file /usr/local/lib/php/20090626/pfSense.so matches /usr/local/www/interfaces_ppps_edit.php: $serialports = pfSense_get_modem_devices(); grep: /var/etc/dyndns_wandnsomaticall.dnsomatic.com.debug: No such file or directory grep: /cf/conf/dyndns_wandnsomaticall.dnsomatic.com.cache: No such file or directory $
On this system at attempt to edit PPP advanced options on a 3G modem PPP interface hangs. The version of pfSense_get_modem_devices in /usr/local/lib/php/20090626/pfSense.so hangs?
-
Yes, commenting out the call to pfsense_get_modem_devices lets the page load.
I opened a bug for version 2.1 http://redmine.pfsense.org/issues/2433 -
Try to get a full ps output from when it's working and when it's hung and compare the two. If it is blocking on exec, the command it's running should appear. (Or it might be easier to spot with pstree, pkg_add -r pstree, look for anything that's a child process of a PHP process under lighttpd.)
Just a quick suggestion, it'd be nice to offer a pstree binary as part of the base system.
-
uname -a FreeBSD hostname.domain 8.3-RELEASE-p3 FreeBSD 8.3-RELEASE-p3 #1: Thu Jun 14 19:12:21 EDT 2012 root@FreeBSD_8.3_pfSense_2.1.snaps.pfsense.org:/usr/obj./usr/pfSensesrc/src/sys/pfSense_SMP.8 i386
Clean install from .iso. Big gitsync. Reboot. Config.xml restored from GUI via FFox static LAN host on bare metal.
1. pfSense up since 6/16
uptime 12:34PM up 3 days, 15:03, 2 users, load averages: 0.00, 0.09, 0.08
Everything appears well, except:
~~2. http://forum.pfsense.org/index.php/topic,50600.0.html
Webconfigurator hasn't shown OPT or IPv6 gateways for at least a couple weeks (2 updates and a restore from clean install to present snapshot). Been ignoring since IPv6 has been working. Config.xml shows OPT & Gateways properly and=backup from 2.1 Full instance that displayed everything properly.3. Lost IPv6 some time last night. V4 is up.
Can't ping6 out from LAN hosts, or from pfSense…logs strangely quiet...
Decided to reenter OPT1 and assign the v6 gif & gateways from pfSense GUI, so I could: rule the configuration out, solve 2., hopefully start to see IPv6 info properly through GUI, use the forced config changes to flush.IPv6 now works.
But either the GUI is down, or I'm locked out. I can't raise GUI via IP or domain name, although I did get a cert warning from Firefox 13, once. Page never loads.I have ssh/sftp to pfSense via domain name, but "Restart Webconfigurator" doesn't result in a page load on any host on the LAN.
Any suggestions what needs to be restarted? Don't want to reboot.~~
EDIT: GUI no longer hangs. Solved by gitsync (or php_ini reload). GUI loads quickly, displays everything.
If IPv6 fails again, I'll post under a different topic. -
Has there been any progress on this bug? I want to add a PPP interface and can not do it because the WebConfigurator hangs.
2.1-BETA0 (amd64)
built on Mon Nov 19 04:44:07 EST 2012
FreeBSD 8.3-RELEASE-p4 -
No but here is a workaround:
Install the System Patches package
Add this patch: http://files.nyi.pfsense.org/jimp/patches/3g_alt_detect.diff
Path Strip Count = 1, Base = /, Ignore whitespace.
Save, Fetch, apply -
Thanks. That worked.
Is there any side-effect from the workaround?
-
No it just doesn't automatically detect the proper modem port, so you have to guess which one is correct.
-
It's a function in the pfSense PHP module. Some functions, especially those that deal directly with hardware, were put there for optimization.
I just applied this patch today to the lastest version of 32-bit pfSense 2.1 development beta. I must ask though, why is this still an issue? Same issue exactly - tried to add a PPPoE connection and brought the whole thing down.
Also, when I tried just adding in the Interface it did it but it put the new PPPoE connection on the WRONG ETHERNET JACK. Yeah. But I could manually add it once I applied this patch, just seems this should "just work" out of the box.