|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-02-27 17:32 UTC] php at bof dot de
-Status: Open
+Status: Closed
[2015-02-27 17:32 UTC] php at bof dot de
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Dec 14 14:00:02 2025 UTC |
Description: ------------ Recently upgraded production webserver to PHP 5.5.16 with opcache (previously 5.4.26 with APC), I notice that when I shut down apache (while there are still some connections in flight / in processing) the following messages in php error log. The call to microtime() that is mentioned there happens at request shutdown from within a class instance __destruct() method of an object that is the sole singleton instance of its class (static protected $instance). How can microtime() be gone at that point in time??? In normal operation everything is fine with this mechanism, it is only when shutting down apache that this happens - which makes me suspect opcache (but not sure) Unfortunately I could not reproduce this on a nonloaded development system so far... Here's the fatal error log entry: [23-Aug-2014 01:19:39 Australia/Queensland] PHP Fatal error: Call to undefined function microtime() in /.../classes/counter/loadtime.inc on line 184 [23-Aug-2014 01:19:39 Australia/Queensland] PHP Fatal error: Cannot call overloaded function for non-object in Unknown on line 0 Destructor code: public function __destruct() { static::stop(); } That method's code starts like this, up to the line 184 microtime call of the log: static public function stop() { $that = static::$instance; if (!isset($that) || !isset($that->page)) { return; } $now = microtime(TRUE); and the second message about call overloaded function on non-object, probably comes some lines later as "$that->get_cpu_usage();" (there are no other objects involved up to that point) PHP 5.5.16 is running as mod_php under the openSUSE 11.4 (evergreen) apache 2.2.17 server (up to date). PHP 5.5.16 has been compiled using the following configure line ./configure \ --prefix=$DIR \ --bindir=$DIR/bin \ --libdir=$DIR \ --includedir=$DIR/include \ --mandir=$DIR/man \ --with-apxs2=/usr/sbin/apxs2 \ --with-config-file-path=$DIR \ --with-config-file-scan-dir=$DIR/ini.d \ --with-zend-vm=GOTO \ --enable-re2c-cgoto \ --disable-cgi \ --enable-bcmath \ --enable-calendar \ --enable-exif \ --enable-ftp \ --enable-intl \ --enable-mbstring \ --enable-pcntl \ --enable-soap \ --enable-sockets \ --enable-zip \ --enable-opcache \ --with-openssl \ --with-zlib \ --with-bz2 \ --with-curl \ --with-gd \ --enable-gd-native-ttf \ --with-jpeg-dir=/usr/include \ --with-gettext \ --with-gmp \ --enable-mysqlnd \ --with-mysqli \ --with-readline \ --with-recode \ --with-xmlrpc \ --with-xsl \ --with-pear \ --with-freetype-dir=/usr/include \ --with-mhash \ --with-mcrypt \ opcache, should it matter, is configured like this: zend_extension=/opt/php/extensions/opcache.so opcache.memory_consumption=512 opcache.interned_strings_buffer=64 opcache.max_wasted_percentage=50 opcache.max_accelerated_files=8000 opcache.fast_shutdown=1 opcache.revalidate_freq=0 opcache.save_comments=0 opcache.blacklist_filename=/opt/php/ini.d/opcache.blacklist opcache.log_verbosity_level=1