php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #74865 PHP7.0-xml dom.so: undefined symbol: php_libxml_node_free_list
Submitted: 2017-07-06 12:14 UTC Modified: 2017-07-06 14:54 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:0 (0.0%)
From: rafal dot ksiazek at workhq dot com Assigned:
Status: Not a bug Package: DOM XML related
PHP Version: 7.0.21 OS: Ubuntu 14.04
Private report: No CVE-ID:
 [2017-07-06 12:14 UTC] rafal dot ksiazek at workhq dot com
Description:
------------
After updating system php application stop working:

php -i generates something like this:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/dom.so' - /usr/lib/php/20151012/dom.so: undefined symbol: php_libxml_node_free_list in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xmlreader.so' - /usr/lib/php/20151012/xmlreader.so: undefined symbol: dom_node_class_entry in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xsl.so' - /usr/lib/php/20151012/xsl.so: undefined symbol: dom_node_class_entry in Unknown on line 0


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-07-06 12:18 UTC] spam2 at rhsoft dot net
this is pretty sure a build-failure and looks like libxml is missing

[reindl@arrakis:~]$ php -v
PHP 7.0.21 (cli) (built: Jul  5 2017 18:05:18) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

[reindl@arrakis:~]$ php -m
[PHP Modules]
apcu
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
gd
geoip
hash
iconv
imagick
imap
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
Reflection
session
SimpleXML
soap
SPL
standard
tidy
xml
zip
zlib
 [2017-07-06 12:21 UTC] rafal dot ksiazek at workhq dot com
Nope, it was installed.

php -m | grep libxml
libxml

As I said - it goes after: apt-get update & upgrade
 [2017-07-06 12:25 UTC] spam2 at rhsoft dot net
then the ordering of modules is wrong in the package as you can see i have no errors - that's sometimes tricky in PHP when extension C is based on B which is based on A

"As I said - it goes after: apt-get update & upgrade" - no you did not say that in the initial report - php-7.0.21-1.0.fc25.20170705.1755.rh.sandybridge.x86_64 is the system PHP but not from the Fedora distribution

since upstream PHP properly built and configured just works as before you better take this to the distributions bugtracker
 [2017-07-06 12:27 UTC] rafal dot ksiazek at workhq dot com
[rk]% php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/dom.so' - /usr/lib/php/20151012/dom.so: undefined symbol: php_libxml_node_free_list in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xmlreader.so' - /usr/lib/php/20151012/xmlreader.so: undefined symbol: dom_node_class_entry in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xsl.so' - /usr/lib/php/20151012/xsl.so: undefined symbol: dom_node_class_entry in Unknown on line 0
PHP 7.0.20-2~ubuntu14.04.1+deb.sury.org+1 (cli) (built: Jun 14 2017 05:55:23) ( NTS )

Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.21-1~ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies

[rk]% php -m
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/dom.so' - /usr/lib/php/20151012/dom.so: undefined symbol: php_libxml_node_free_list in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xmlreader.so' - /usr/lib/php/20151012/xmlreader.so: undefined symbol: dom_node_class_entry in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xsl.so' - /usr/lib/php/20151012/xsl.so: undefined symbol: dom_node_class_entry in Unknown on line 0

[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xml
xmlrpc
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache
 [2017-07-06 12:38 UTC] rafal dot ksiazek at workhq dot com
Hmm.. ok, when I purged whole php7.0-* and installed it again, everything is working fine.

Thanks for quick answers. You are awesome!
 [2017-07-06 12:41 UTC] spam2 at rhsoft dot net
again: this is a downstream problem in the distribution or a config problem and given that in your output "Zend OPcache" appears twice and must not exist in "[PHP Modules]" i wouldn't trust you whole configuration whoever is responsible for "extension = opcache.so" which is just plain wrong

don't copy&paste that below blindly because you don#t have the same build and most likely some parts not as shared extension at all

the first part is from "php.ini" for httpd and responsible for the opcache loading shared between all servers and the scond part is a machine specific override, since we rely heavily on dom/xml and have a large autotest-suite for our application i can assure you ta┬┤hat upstream PHP works exactly like before when it's proper built and configured

[zend]
zend_extension                            = "opcache.so"
opcache.enable                            = 1
opcache.enable_cli                        = 0
opcache.load_comments                     = 0
opcache.save_comments                     = 0
opcache.use_cwd                           = 1
opcache.validate_timestamps               = 1
opcache.validate_permission               = 0
opcache.revalidate_freq                   = 15
opcache.revalidate_path                   = 0
opcache.max_accelerated_files             = 1000
opcache.memory_consumption                = 32
opcache.interned_strings_buffer           = 8
opcache.preferred_memory_model            = "mmap"
opcache.max_file_size                     = 327680
opcache.enable_file_override              = 1
opcache.fast_shutdown                     = 1
opcache.log_verbosity_level               = 2
opcache.huge_code_pages                   = 1

cat /etc/php.lounge.d/extensions.ini
extension                             = "zlib.so"
extension                             = "openssl.so"
extension                             = "mbstring.so"

extension                             = "apcu.so"
extension                             = "bz2.so"
extension                             = "calendar.so"
extension                             = "ctype.so"
extension                             = "curl.so"
extension                             = "dom.so"
extension                             = "exif.so"
extension                             = "fileinfo.so"
extension                             = "gd.so"
extension                             = "geoip.so"
extension                             = "hash.so"
extension                             = "iconv.so"
extension                             = "imagick.so"
extension                             = "imap.so"
extension                             = "intl.so"
extension                             = "json.so"
extension                             = "mysqlnd.so"
extension                             = "mysqli.so"
extension                             = "pdo.so"
extension                             = "pdo_mysql.so"
extension                             = "session.so"
extension                             = "simplexml.so"
extension                             = "soap.so"
extension                             = "tidy.so"
extension                             = "xml.so"
extension                             = "zip.so"

opcache.memory_consumption            = 256
opcache.max_accelerated_files         = 10000
opcache.interned_strings_buffer       = 8
 [2017-07-06 14:02 UTC] neal at aegis dot systems
I ran into this problem this morning after a yum update of php70.  What I found was a hard copy of the php executable in /usr/bin/ rather than a link.  That left an old version of php as the default executable for `which php`.  So essentially, yum updated remi php but the old executable was still being called.. resulting in an error.  I deleted the old/stale version /usr/bin/php and created a link to the installed remi path. 

#ls -altrh /usr/bin/

lrwxrwxrwx.   1 root root      36 Jul  6 09:21 php54-cgi -> /opt/remi/php54/root/usr/bin/php-cgi*
lrwxrwxrwx.   1 root root      32 Jul  6 09:21 php54 -> /opt/remi/php54/root/usr/bin/php*
lrwxrwxrwx.   1 root root      38 Jul  6 09:21 php54-phar -> /opt/remi/php54/root/usr/bin/phar.phar*
lrwxrwxrwx.   1 root root      33 Jul  6 09:21 php54-pear -> /opt/remi/php54/root/usr/bin/pear*
lrwxrwxrwx.   1 root root      32 Jul  6 09:21 php55 -> /opt/remi/php55/root/usr/bin/php*
lrwxrwxrwx.   1 root root      38 Jul  6 09:21 php55-phar -> /opt/remi/php55/root/usr/bin/phar.phar*
lrwxrwxrwx.   1 root root      36 Jul  6 09:21 php55-cgi -> /opt/remi/php55/root/usr/bin/php-cgi*
lrwxrwxrwx.   1 root root      33 Jul  6 09:21 php55-pear -> /opt/remi/php55/root/usr/bin/pear*
lrwxrwxrwx.   1 root root      38 Jul  6 09:22 php56-phar -> /opt/remi/php56/root/usr/bin/phar.phar*
lrwxrwxrwx.   1 root root      36 Jul  6 09:22 php56-cgi -> /opt/remi/php56/root/usr/bin/php-cgi*
lrwxrwxrwx.   1 root root      32 Jul  6 09:22 php56 -> /opt/remi/php56/root/usr/bin/php*
lrwxrwxrwx.   1 root root      33 Jul  6 09:22 php56-pear -> /opt/remi/php56/root/usr/bin/pear*
lrwxrwxrwx.   1 root root      32 Jul  6 09:22 php70 -> /opt/remi/php70/root/usr/bin/php*
lrwxrwxrwx.   1 root root      38 Jul  6 09:22 php70-phar -> /opt/remi/php70/root/usr/bin/phar.phar*
lrwxrwxrwx.   1 root root      36 Jul  6 09:22 php70-cgi -> /opt/remi/php70/root/usr/bin/php-cgi*
lrwxrwxrwx.   1 root root      36 Jul  6 09:22 php71-cgi -> /opt/remi/php71/root/usr/bin/php-cgi*
lrwxrwxrwx.   1 root root      32 Jul  6 09:22 php71 -> /opt/remi/php71/root/usr/bin/php*
lrwxrwxrwx.   1 root root      38 Jul  6 09:22 php71-phar -> /opt/remi/php71/root/usr/bin/phar.phar*
lrwxrwxrwx.   1 root root      32 Jul  6 09:27 php -> /opt/remi/php70/root/usr/bin/php*
 [2017-07-06 14:04 UTC] requinix@php.net
-Status: Open +Status: Not a bug
 [2017-07-06 14:04 UTC] requinix@php.net
Based on the 20151012 date it looks like you had it trying to load PHP 5 extensions left from your previous installation.
 [2017-07-06 14:23 UTC] rafal dot ksiazek at workhq dot com
Nope, On this server there was no other php version. BTW. After reinstalation it's still the same folder with extensions for php7.0.
 [2017-07-06 14:54 UTC] requinix@php.net
You're right, that is the date used in the php7.0 packages. It's during the RC releases of 7.0.0 so maybe that's when he started setting up builds.
Anyway, some sort of dependency/versioning issues created during the update process.
 [2017-07-08 11:24 UTC] pgee at me dot com
In my case this was caused by not all the packages being upgraded.  looking at the output of apt-get upgrade there were some PHP packages being held back.
::
The following packages have been kept back:
  libapache2-mod-php7.0 libphp7.0-embed libssl-dev openssl php7.0-cgi
  php7.0-cli php7.0-common php7.0-dev php7.0-fpm php7.0-phpdbg
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
::
so i just installed those packages:
apt-get install libapache2-mod-php7.0 libphp7.0-embed libssl-dev openssl php7.0-cgi php7.0-cli php7.0-common php7.0-dev php7.0-fpm php7.0-phpdbg

and the issue resolved itself.  phew!
 
PHP Copyright © 2001-2017 The PHP Group
All rights reserved.
Last updated: Mon Jul 24 10:01:45 2017 UTC