|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-01-16 21:06 UTC] danack@php.net
[2015-01-19 09:19 UTC] fs at gigacodes dot de
[2021-01-06 14:25 UTC] cmb@php.net
-Status: Open
+Status: Feedback
-Assigned To:
+Assigned To: cmb
[2021-01-06 14:25 UTC] cmb@php.net
[2021-01-17 04:22 UTC] php-bugs at lists dot php dot net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 04:00:01 2025 UTC |
Description: ------------ the xmlreader open call will function correctly for about 15-30minutes after starting php-fpm. After that it will not even try to access the remote url and fail with an "failed to load external entity" error. In an strace i can sometimes see that it will do a 'stat' system call on the url (which is quite weird) but will not even try to do anything else. When i restart php-fpm it will work immediately again for about 30 min. The wsdl file in the test is just a public weather api i used for reproducing. We initially encountered this problem within SOAPClient but could track it down to XMLReader. System is a CentOS 7 with all updates (as of 15.01.15) and a php-5.5.20 compiled with: ./configure --prefix=/home/php-${version} --with-mysql --with-gd --with-curl --with-zlib --with-jpeg-dir=/usr/lib/ --with-iconv --with-pdo-mysql=mysqlnd --with-openssl --enable-mbstring --with-mysqli --with-gettext --enable-sockets --with-mcrypt --with-freetype-dir=/usr --enable-soap --with-xsl --enable-opcache --with-oci8=instantclient,/usr/lib/oracle/12.1/client64/lib --enable-sysvsem --enable-fpm --enable-pcntl --enable-bcmath --with-gmp Test script: --------------- <?php function loadXML() { try { $xml = new XMLReader(); $xml->open("http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"); $xml->setParserProperty(XMLReader::VALIDATE, true); var_dump($xml->isValid()) . "\n"; return null; } catch (Exception $e) { return $e; } } $start = new DateTime(); echo "Start: ". $start->format('Y-m-d H:i:s') ."\n"; $e = loadXML(); var_dump($e);