Edit report at http://bugs.php.net/bug.php?id=53141&edit=1

 ID:                 53141
 User updated by:    ladislav at marek dot su
 Reported by:        ladislav at marek dot su
 Summary:            autoload misbehaves if called from closing session
 Status:             Open
 Type:               Bug
 Package:            SPL related
 Operating System:   GNU Linux
 PHP Version:        5.3SVN-2010-10-23 (SVN)
 Block user comment: N

 New Comment:

I can reproduce it with '--with-mysql=mysqlnd' configuration.


Previous Comments:
------------------------------------------------------------------------
[2010-10-23 17:38:12] ladislav at marek dot su

I updated PHP from the SVN (rev 304664). With PHP compiled only with
"--with-config-file-path=/etc/php" script runs as 

expected, but fails with configure options:



--with-config-file-path=/etc/php --with-openssl --with-kerberos
--with-zlib --enable-bcmath --with-bz2 --with-curl --with-

curlwrappers --enable-dba --enable-ftp --with-gd
--with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-zlib-

dir=/usr/include --with-xpm-dir=/usr/include
--with-freetype-dir=/usr/lib --enable-gd-native-ttf --with-gettext
--with-mhash 

--with-imap --with-imap-ssl --with-ldap --enable-mbstring --with-mcrypt
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-

pdo-mysql=mysqlnd --with-pdo-pgsql --with-pgsql --enable-shmop
--enable-soap --enable-sockets --enable-sqlite-utf8 --enable-

sysvmsg --with-tidy --with-xmlrpc --with-xsl --enable-zip --enable-intl
--enable-fpm

------------------------------------------------------------------------
[2010-10-23 16:55:02] fel...@php.net

I got the expected result when testing on the 5.3 SVN version. Are you
actually using the lastest SVN version?

------------------------------------------------------------------------
[2010-10-23 10:36:09] ladislav at marek dot su

Description:
------------
SPL autoload triggers fatal error if is called from currently closing
session. 

With __autoload function scripts works fine.

Test script:
---------------
spl_autoload_register(function ($class) {

    var_dump("Loading $class");

    eval('class Bar {}');

});



class Foo

{

    function __sleep()

    {

        new Bar;

        return array();

    }

}



session_start();

$_SESSION['foo'] = new Foo;

Expected result:
----------------
string(11) "Loading Bar"

Actual result:
--------------
Fatal error: spl_autoload(): Class Bar could not be loaded in 

/var/www/hosts/tests.l/index.php on line 14


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53141&edit=1

Reply via email to