View Issue Details

IDProjectCategoryView StatusLast Update
0000857XdebugUsage problems (Wrong Results)public2016-02-11 18:52
ReportermagnusepAssigned Toderick 
PriorityhighSeverityblockReproducibilityalways
Status resolvedResolutionunable to reproduce 
Product Version 
Target VersionFixed in Version 
Summary0000857: "Undefined property" reported from static reference?
DescriptionMight be related to 839, 837, 831, 830.

I'm experiencing an issue with ZFs autoloader that seems to be caused by xdebug. If I dont set any breakpoints the provided script loads and produces a result without issues.

If I replace all occurances of "protected" with "public" in lib/Zend/Loader/Autoloader.php I can use a breakpoint and step thru the code without issues.

I'm using xdebug 2.3.0devel (1e7c7a7b4876fc8ef3ac90562fca9930d267e2aa on gh)

The provided autoloader is taken from Zend Framework 1.11.11 and has been modified in such a way that all requires have been stripped (shouldn't affect the bug though).
Steps To ReproduceExtract provided archive, change include path in thescript.php to point to provided lib folder. Set a breakpoint on line 9 in thescript.php and then load it up. Xdebug will report:

Notice: Undefined property: Zend_Loader_Autoloader::$_internalAutoloader in /some/path/lib/Zend/Loader/Autoloader.php on line 365

Fatal error: Class 'MyClass' not found in Unknown on line 0
Additional InformationLinux 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64

PHPStorm 4.0.2
TagsNo tags attached.
Operating SystemCentOS 6.2, x86_64
PHP Version5.4.3

Activities

magnusep

2012-06-21 11:12

reporter  

zendissue.zip (8,147 bytes)

derick

2012-06-25 18:05

administrator   ~0002278

Could you be so kind to make a self-contained test case? ie, with the relevant Zend Framework parts bundled?

magnusep

2012-06-26 06:25

reporter  

857.zip (6,614 bytes)

magnusep

2012-06-26 06:30

reporter   ~0002285

857.zip is about as self-contained I can make it but still two files. Afaik, to trigger the autoloading which reproduces the bug, the script needs to access a non-existant class but to pass it also needs to exist in the include path.

derick

2012-06-27 21:07

administrator   ~0002293

I can't reproduce this with your code sadly, but it would help if you could make me a remote debugging log. See http://xdebug.org/docs/all_settings#remote_log on how to make one.

magnusep

2012-07-02 08:27

reporter   ~0002318

I am now also seeing core dumps for some reason. Only change I'm aware of is that we're now running PHP 5.4.4 from 5.4.3 when this bug was originally reported.

Can I submit dumps/logs somewhere that is not publicly visible?

magnusep

2012-07-04 13:35

reporter  

xdebug.log (12,050 bytes)

magnusep

2012-07-04 13:35

reporter  

php-config.log (3,364 bytes)

magnusep

2012-07-04 13:35

reporter  

error_log (4,596 bytes)
[Wed Jul 04 15:29:53 2012] [notice] core dump file size limit raised to 18446744073709551615 bytes
[Wed Jul 04 15:29:53 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Jul 04 15:29:53 2012] [notice] Digest: generating secret for digest authentication ...
[Wed Jul 04 15:29:53 2012] [notice] Digest: done
[Wed Jul 04 15:29:53 2012] [info] APR LDAP: Built with OpenLDAP LDAP SDK
[Wed Jul 04 15:29:53 2012] [info] LDAP: SSL support available
[Wed Jul 04 15:29:53 2012] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.4.4 configured -- resuming normal operations
[Wed Jul 04 15:29:53 2012] [info] Server built: Feb 13 2012 22:31:42
[Wed Jul 04 15:29:53 2012] [debug] prefork.c(1018): AcceptMutex: sysvsem (default: sysvsem)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1622 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1622 for (*)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1624 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1624 for (*)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1623 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1623 for (*)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1621 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1621 for (*)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1625 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1625 for (*)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1626 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1626 for (*)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1627 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1627 for (*)
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1818): proxy: grabbed scoreboard slot 0 in child 1628 for worker proxy:reverse
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1837): proxy: worker proxy:reverse already initialized
[Wed Jul 04 15:29:53 2012] [debug] proxy_util.c(1934): proxy: initialized single connection worker 0 in child 1628 for (*)
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP Notice:  Undefined property: Zend_Loader_Autoloader::$_internalAutoloader in /var/www/html/bug857.php on line 372
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP Stack trace:
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP   1. {main}() /var/www/html/bug857.php:0
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP   2. Zend_Loader_Autoloader::autoload($class = *uninitialized*) /var/www/html/bug857.php:0
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP   3. Zend_Loader_Autoloader->getClassAutoloaders($class = *uninitialized*) /var/www/html/bug857.php:125
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP Fatal error:  Class 'MyClass' not found in /var/www/html/bug857.php on line 5
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP Stack trace:
[Wed Jul 04 15:29:57 2012] [error] [client 192.168.56.1] PHP   1. {main}() /var/www/html/bug857.php:0
[Wed Jul 04 15:30:02 2012] [info] removed PID file /etc/httpd/run/httpd.pid (pid=1619)
[Wed Jul 04 15:30:02 2012] [notice] caught SIGTERM, shutting down
error_log (4,596 bytes)

magnusep

2012-07-04 13:35

reporter  

phpinfo.log (27,722 bytes)

magnusep

2012-07-04 13:39

reporter   ~0002320

Last edited: 2012-07-05 06:48

View 2 revisions

I've now been able to reproduce the bug in an isolated environment. I believe it might be an issue with 64bit architecture since the script runs fine in an vanilla installation of 32bit CentOS. That is, I've installed both i386 and x86_64 in two separate instances.

Attached is logs and output from php-config and 'php -i' from the x86_64 instance where I can reproduce the bug. "Unfortunately" I wasn't able to get a segfault :)

chgd

2015-08-04 10:05

reporter   ~0003158

I have a similar problem without Zend.
When running XDebug the code will break at parts where a static protected property of an abstract class is accessed. PHP then throws a Fatal Error claiming the property is undeclared.

derick

2015-11-20 18:06

administrator   ~0003250

This is a bit of an old bug. Could you please try Xdebug 2.4.0rc1 (out in a few hours), and let me know if the problem still exists?

derick

2015-12-15 18:43

administrator   ~0003348

Ping?

derick

2016-02-11 18:52

administrator   ~0003484

I can't reproduce this, and the requested feedback was not provided. I am closing this, but feel free to reopen if you can provide the requested information and the problem still occurs with Xdebug 2.4.0RC4.

Issue History

Date Modified Username Field Change
2012-06-21 11:12 magnusep New Issue
2012-06-21 11:12 magnusep File Added: zendissue.zip
2012-06-25 18:05 derick Note Added: 0002278
2012-06-25 18:05 derick Assigned To => derick
2012-06-25 18:05 derick Status new => feedback
2012-06-26 06:25 magnusep File Added: 857.zip
2012-06-26 06:30 magnusep Note Added: 0002285
2012-06-26 06:30 magnusep Status feedback => assigned
2012-06-27 21:07 derick Note Added: 0002293
2012-06-27 21:07 derick Status assigned => feedback
2012-07-02 08:27 magnusep Note Added: 0002318
2012-07-02 08:27 magnusep Status feedback => assigned
2012-07-04 13:35 magnusep File Added: xdebug.log
2012-07-04 13:35 magnusep File Added: php-config.log
2012-07-04 13:35 magnusep File Added: error_log
2012-07-04 13:35 magnusep File Added: phpinfo.log
2012-07-04 13:39 magnusep Note Added: 0002320
2012-07-05 06:48 magnusep Note Edited: 0002320 View Revisions
2015-08-04 10:05 chgd Note Added: 0003158
2015-11-20 18:06 derick Note Added: 0003250
2015-11-20 18:06 derick Status assigned => feedback
2015-12-15 18:43 derick Note Added: 0003348
2016-02-11 18:52 derick Note Added: 0003484
2016-02-11 18:52 derick Status feedback => resolved
2016-02-11 18:52 derick Resolution open => unable to reproduce
2016-07-31 12:36 derick Category Usage problems => Usage problems (Crashes)
2016-07-31 12:38 derick Category Usage problems (Crashes) => Usage problems (Wrong Results)