2.3.1_1 update with crash and error [solved]



  • Hi, updated to 2.3.1_1, and after reboot got this crash report:

    Crash report begins.  Anonymous machine information:
    amd64
    10.3-RELEASE-p3
    FreeBSD 10.3-RELEASE-p3 #3 1988fec(RELENG_2_3_1): Wed May 25 15:34:12 CDT 2016     root@factory23-amd64-builder:/builder/factory-231/tmp/obj/builder/factory-231/tmp/FreeBSD-src/sys/pfSense
    Crash report details:
    PHP Errors:
    [26-May-2016 10:33:57 Europe/Brussels] PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20131226/suhosin.so' - /usr/local/lib/php/20131226/suhosin.so: Undefined symbol "ps_globals" in Unknown on line 0
    Filename: /var/crash/minfree
    2048
    

    Something I should worry about? (submitted anyway)

    update: the crash is persistent; I get this report on each reboot…



  • Hello,

    This issue could be caused by incorrect PHP module loading order.

    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
    

    Edit it, and replace with above content.

    It would also be helpful if you provide more details such as the version you've upgraded from.

    Regards,
    Jorge M. Oliveira



  • Hi Jorge,

    that is interesting. I seem to have 6 lines less than your extensions.ini (and as the extensions.ini on my other node)
    I've upgrade this morning from v2.3.1 to 2.3.1_1 (backup unit only). I reviewed my upgrade log, can't find anything wrong in it?

    I anyway updated the file (copy from my other node), and seems that actually was the issue. Rebooted without crash. Weird… Wondering what might have caused it.

    Thank you!  :)

    Benny.



  • My file looks like this:

    Binary file /usr/local/etc/php/extensions.ini.orig matches
    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=posix.so
    extension=readline.so
    extension=session.so
    extension=shmop.so
    extension=simplexml.so
    extension=sockets.so
    extension=sqlite3.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
    
    


  • @JorgeOliveira:

    Hello,

    This issue could be caused by incorrect PHP module loading order.

    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
    

    Edit it, and replace with above content.

    It would also be helpful if you provide more details such as the version you've upgraded from.

    Regards,
    Jorge M. Oliveira

    I had the same issue, and tried replacing the contents of my extensions.ini as indicated above, but that resulted in a new crash.  I didn't have time to troubleshoot further, and as this was a pfSense running on an ESXi 5.5 VM, I simply rolled back to the snapshot I took immediately before running the upgrade.

    I will try again and report back, but the fix marked as solving this issue didn't work for me.

    P



  • I was having the same issue moving from 2.3 to 2.3.1_1.

    extension=pfSense.so
    extension=radius.so
    extension=rrd.so
    extension=ssh2.so
    extension=suhosin.so

    ^these are not present in my extensions.ini file but

    extension=pfSense.so
    extension=radius.so
    extension=rrd.so
    extension=ssh2.so

    look like they are getting loaded in /usr/local/etc/php.ini . I added extension=suhosin.so to extensions.ini and don't get any more errors. Any idea why I still have some extensions loading in php.ini?



  • You can add all the extensions required by pfSense to extensions.ini (in fact you should!). When you restart PHP-FPM via appropriate option (or system reboots) it will generate a new proper php.ini with everything except the extensions at extensions.ini. This ensures correct module order.

    It can be especially troublesome when session.so is declared in extensions.ini but suhosin.so appears in php.ini. It will cause incorrect load order and things will be not-so-good.

    This issue may boil down to upgrade process not being 100% effective, although I recognize the continued effort of the developers to improve the process. One just can't test ALL hardware and ALL miscellaneous settings.

    Regards,
    Jorge M. Oliveira



  • It's also bad design by PHP to use text files to specify the loaded extensions, the files are fragile and prone to race conditions when handled programmatically.



  • @kpa:

    It's also bad design by PHP to use text files to specify the loaded extensions, the files are fragile and prone to race conditions when handled programmatically.

    From experience, coders who incorrectly decide to put order dependent stuff in flat files and then naively parse them back, who will also not do anything about that issue in a decade will not do any better given any other construct.
    This isn't a flat file issue.



  • @PrinceManfred:

    I was having the same issue moving from 2.3 to 2.3.1_1.

    extension=pfSense.so
    extension=radius.so
    extension=rrd.so
    extension=ssh2.so
    extension=suhosin.so

    ^these are not present in my extensions.ini file but

    extension=pfSense.so
    extension=radius.so
    extension=rrd.so
    extension=ssh2.so

    look like they are getting loaded in /usr/local/etc/php.ini . I added extension=suhosin.so to extensions.ini and don't get any more errors. Any idea why I still have some extensions loading in php.ini?

    I've had the same issue after updating our firewall from pfSense 2.3 to 2.3.1_1

    As suggested, I added the  "extension=suhosin.so"  to  extensions.ini 
    I added  "extension=suhosin.so" just under the "extension=sqlite3.so" line (it was there on another firewall I had access to).
    This solved the error.

    After adding the "extension=suhosin.so" and rebooting the firewall,  the suhosin configuration automagically appeared in the php.ini file  :)
    –-------------------------
    [suhosin]
    suhosin.get.max_array_index_length = 256
    suhosin.get.max_vars = 5000
    suhosin.get.max_value_length = 500000
    suhosin.post.max_array_index_length = 256
    suhosin.post.max_vars = 5000
    suhosin.post.max_value_length = 500000
    suhosin.request.max_array_index_length = 256
    suhosin.request.max_vars = 5000
    suhosin.request.max_value_length = 500000
    suhosin.memory_limit = 536870912
    –-------------------------



  • Updated 2.3.2 to 2.3.2_1 and got the same error. Solution is the same. But… what is wrong?


Log in to reply