PfSense 2.3.1 PHP errors
-
Can anyone tell me where in the menus I need to go to correct whatever is causing repeated crash reports? I keep getting this in the crash reporter:
Crash report begins. Anonymous machine information:
amd64
10.3-RELEASE-p3
FreeBSD 10.3-RELEASE-p3 #1 3ef16fb(RELENG_2_3_1): Tue May 17 19:34:13 CDT 2016 root@ce23-amd64-builder:/builder/pfsense-231/tmp/obj/builder/pfsense-231/tmp/FreeBSD-src/sys/pfSenseCrash report details:
PHP Errors:
[18-May-2016 23:00:02 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 00:00:01 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 01:00:02 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 02:00:01 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 03:00:01 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 04:00:01 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 05:00:01 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 06:00:01 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
[19-May-2016 07:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399Thanks in advance. :)
-
Please check if your /usr/local/etc/php/extensions.ini contains the following content:
extension=bcmath.so extension=bz2.so extension=ctype.so extension=curl.so extension=dom.so extension=filter.so extension=gettext.so extension=hash.so extension=json.so extension=ldap.so extension=mbstring.so extension=mcrypt.so extension=openssl.so extension=pcntl.so extension=pdo.so extension=pdo_sqlite.so extension=pfSense.so extension=posix.so extension=radius.so extension=readline.so extension=rrd.so extension=session.so extension=shmop.so extension=simplexml.so extension=sockets.so extension=sqlite3.so extension=ssh2.so extension=suhosin.so extension=sysvmsg.so extension=sysvsem.so extension=sysvshm.so extension=tokenizer.so extension=xml.so extension=xmlreader.so extension=xmlwriter.so extension=zlib.so extension=zmq.so zend_extension=/usr/local/lib/php/20131226/opcache.so zend_extension=/usr/local/lib/php/20131226/xdebug.so
I am pretty sure there is a thread about it somewhere
but can't find it at the moment.This has happened in the past to some people in other GUI areas with another function:
https://forum.pfsense.org/index.php?topic=107790.msg605022#msg605022 -
Hey, thanks for replying so quickly. my extensions.ini file contains only this:
extension=bcmath.so
extension=bz2.so
extension=ctype.so
extension=curl.so
extension=dom.so
extension=filter.so
extension=gettext.so
extension=hash.so
extension=json.so
extension=ldap.so
extension=mbstring.so
extension=mcrypt.so
extension=openssl.so
extension=pcntl.so
extension=pdo.so
extension=pdo_sqlite.so
extension=pfSense.so
extension=posix.so
extension=radius.so
extension=readline.so
extension=rrd.so
extension=session.so
extension=shmop.so
extension=simplexml.so
extension=sockets.so
extension=sqlite3.so
extension=ssh2.so
extension=suhosin.so
extension=sysvmsg.so
extension=sysvsem.so
extension=sysvshm.so
extension=tokenizer.so
extension=xml.so
extension=xmlreader.so
extension=xmlwriter.so
extension=zlib.so
extension=zmq.so
zend_extension=/usr/local/lib/php/20131226/opcache.so
zend_extension=/usr/local/lib/php/20131226/xdebug.soDo I need to replace the above with the content from your post? Is this generic or machine-specific?
-
That should be okay. gettext is mentioned in that file. Try restarting PHP-FPM and see if issue persists.
-
Done. Now I'll wait to see if there are any recurrences. Thanks!
-
Just as final test.
Running on shell / diag_command:
php -m | grep gettext
Should return gettext which would mean it is being correctly loaded.
Regards,
Jorge M. Oliveira -
I got the following:
Shell Output - php -m | grep gettext
gettext
So that's good. I am still getting the crash reports though.
-
Just out of curiosity, do you have any packages installed? Run this and let me know if there is any output:
pkg info | grep -i pfsense-pkg
-
I do, in fact. Here is the output:
Shell Output - pkg info | grep -i pfsense-pkg
pfSense-pkg-Avahi-1.11_2 pfSense package Avahi
pfSense-pkg-darkstat-3.1.2_1 pfSense package darkstat
pfSense-pkg-snort-3.2.9.1_12 pfSense package snort -
Something is calling php either at a point when configuration is not yet available or forcing it to load on defaults. I could not find anything doing that on the main system neither on those packages. Hence why no Xdebug stack trace at all (which would have been very helpful to find the source…)
I'd suggest a "dirty" workaround until someone finds the true origin of the problem.
Create a /etc/inc/globals_override.inc with this content:
if (!function_exists('gettext')) { function gettext($str) { return $str; } }
This will define that function, if it isn't otherwise available, and make that error gone for time being.
Regards,
Jorge M. Oliveira -
I have created the new file & put it in place, rebooted the system & made some notes as to what I've done thus far. I will wait to see if it shows up again. Thank you Jorge, for you help in this. +1 for you! :D
-
Okay, so I'm still getting the error:
Crash report begins. Anonymous machine information: amd64 10.3-RELEASE-p3 FreeBSD 10.3-RELEASE-p3 #1 3ef16fb(RELENG_2_3_1): Tue May 17 19:34:13 CDT 2016 root@ce23-amd64-builder:/builder/pfsense-231/tmp/obj/builder/pfsense-231/tmp/FreeBSD-src/sys/pfSense Crash report details: PHP Errors: [19-May-2016 15:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 16:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 17:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 18:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 19:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 20:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 21:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 22:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [19-May-2016 23:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [20-May-2016 00:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [20-May-2016 01:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [20-May-2016 02:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [20-May-2016 03:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [20-May-2016 04:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399 [20-May-2016 05:00:00 America/Anchorage] PHP Fatal error: Call to undefined function gettext() in /etc/inc/notices.inc on line 399
I look at the referenced line in "notices.inc" and see this:
log_error(sprintf(gettext('Could not send the message to %1$s -- Error: %2$s'), $to, $smtp->error));
which lead me to reexamine my notification settings, which seem to be in order, since I am also getting Cron emails from the system reporting this:
X-Cron-Env: <shell= bin="" sh="">X-Cron-Env: <path= etc:="" bin:="" sbin:="" usr="" sbin="">X-Cron-Env: <home= var="" log="">X-Cron-Env: <logname=root>X-Cron-Env: <user=root>Can't open perl script "/usr/local/www/lightsquid/lightparser.pl": No such file or directory</user=root></logname=root></home=></path=></shell=>
While I would really like to know what is causing this, I've almost decided to execute a fresh install. :(
-
Definitely looks like leftover of packages uninstalled during 2.2.x to 2.3.x upgrade.
The last resort you have is, as you said, config.xml backup and reinstall from scratch.
-
A clean install followed by a restore of all except packages seems to have worked a charm. Luckily I don't use more than two or three packages. Thanks again for the assistance!