Edit report at http://bugs.php.net/bug.php?id=53748&edit=1
ID: 53748 Updated by: fel...@php.net Reported by: contact at chdemko dot com Summary: Using traits lead to a segmentation fault -Status: Open +Status: Closed Type: Bug Package: Scripting Engine problem Operating System: Fedora core 11 PHP Version: trunk-SVN-2011-01-14 (SVN) -Assigned To: +Assigned To: felipe Block user comment: N Private report: N New Comment: This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2011-01-28 22:19:11] fel...@php.net Automatic comment from SVN on behalf of felipe Revision: http://svn.php.net/viewvc/?view=revision&revision=307832 Log: - Fixed bug #53748 (Using traits lead to a segmentation fault) ------------------------------------------------------------------------ [2011-01-24 11:30:56] karolrybak at gmail dot com I have the same problem. I don't have a test case, cause the bug happens randomly across application. I also get some corrupted variables filled with some random data. Here's the backtrace: #0 0x013795d8 in zval_mark_grey (pz=0x9c5c230) at /root/php-build/php-5.3.4/Zend/zend_gc.c:372 p = 0x1850005 #1 0x01379ebd in gc_mark_roots () at /root/php-build/php-5.3.4/Zend/zend_gc.c:435 No locals. #2 gc_collect_cycles () at /root/php-build/php-5.3.4/Zend/zend_gc.c:664 p = <value optimized out> q = <value optimized out> orig_free_list = <value optimized out> orig_next_to_free = <value optimized out> count = <value optimized out> #3 0x0135c115 in zend_deactivate () at /root/php-build/php-5.3.4/Zend/zend.c:900 No locals. #4 0x01303a8a in php_request_shutdown (dummy=0x0) at /root/php-build/php-5.3.4/main/main.c:1633 report_memleaks = 1 '\001' #5 0x013e7eff in php_apache_request_dtor (r=0x94be720) at /root/php-build/php-5.3.4/sapi/apache2handler/sapi_apache2.c:509 No locals. #6 php_handler (r=0x94be720) at /root/php-build/php-5.3.4/sapi/apache2handler/sapi_apache2.c:681 ctx = 0x94c4168 conf = 0x92b4e18 brigade = 0x94c9968 bucket = <value optimized out> rv = <value optimized out> parent_req = 0x0 ---Type <return> to continue, or q <return> to quit--- #7 0x003d2a4d in ap_run_handler () No symbol table info available. #8 0x003d63f8 in ap_invoke_handler () No symbol table info available. #9 0x003e253e in ap_process_request () No symbol table info available. #10 0x003df2df in ?? () No symbol table info available. #11 0x003da92d in ap_run_process_connection () No symbol table info available. #12 0x003daa2c in ap_process_connection () No symbol table info available. #13 0x003e6e24 in ?? () No symbol table info available. #14 0x003e7131 in ?? () No symbol table info available. #15 0x003e720a in ?? () No symbol table info available. #16 0x003e7d6b in ap_mpm_run () No symbol table info available. #17 0x003be157 in main () No symbol table info available. (gdb) Here's the configure script ./configure \ --build=i386-redhat-linux \ --host=i386-redhat-linux \ --target=i386-redhat-linux-gnu \ --program-prefix= \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --sysconfdir=/etc \ --datadir=/usr/share \ --includedir=/usr/include \ --libdir=/usr/lib \ --libexecdir=/usr/libexec \ --localstatedir=/var \ --sharedstatedir=/usr/com \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --with-libdir=lib \ --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --disable-debug \ --with-pic \ --disable-rpath \ --with-pear \ --with-curl \ --with-exec-dir=/usr/bin \ --with-freetype-dir=/usr \ --without-gdbm \ --with-gettext \ --with-iconv \ --with-zlib \ --with-layout=GNU \ --enable-exif \ --enable-ftp \ --enable-magic-quotes \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg \ --enable-wddx \ --with-kerberos \ --enable-ucd-snmp-hack \ --without-unixODBC \ --enable-shmop \ --enable-calendar \ --with-apxs2=/usr/sbin/apxs \ --without-sqlite \ --enable-dom \ --disable-dba \ --enable-pdo \ --enable-xmlreader \ --enable-xmlwriter \ --with-xmlrpc \ --with-gd \ --with-openssl \ --with-libxml-dir=/usr \ --disable-cgi \ --enable-mbstring \ --enable-bcmath ------------------------------------------------------------------------ [2011-01-21 13:56:06] contact at chdemko dot com I've compiled php with --enable-debug This is the trace: bash-4.0$ gdb ./sapi/cli/php GNU gdb (GDB) Fedora (6.8.50.20090302-40.fc11) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i586-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... (gdb) r ~/trait.php Starting program: /Utilisateurs/cdemko01/php/sapi/cli/php ~/trait.php [Thread debugging using libthread_db enabled] int(1) int(2) array(1) { [1]=> int(2) } Program received signal SIGSEGV, Segmentation fault. zval_mark_grey (pz=0xb7fb144c) at /Utilisateurs/cdemko01/php/Zend/zend_gc.c:372 372 pz = *(zval**)p->pData; Missing separate debuginfos, use: debuginfo-install glibc-2.10.2-1.i686 libxml2-2.7.6-1.fc11.i586 nss-softokn-freebl-3.12.6-1.2.fc11.i586 zlib-1.2.3-22.fc11.i586 (gdb) bt #0 zval_mark_grey (pz=0xb7fb144c) at /Utilisateurs/cdemko01/php/Zend/zend_gc.c:372 #1 0x082d5995 in gc_mark_roots () at /Utilisateurs/cdemko01/php/Zend/zend_gc.c:435 #2 gc_collect_cycles () at /Utilisateurs/cdemko01/php/Zend/zend_gc.c:664 #3 0x082b9035 in zend_deactivate () at /Utilisateurs/cdemko01/php/Zend/zend.c:925 #4 0x082606eb in php_request_shutdown (dummy=0x0) at /Utilisateurs/cdemko01/php/main/main.c:1671 #5 0x0835160f in main (argc=2, argv=0xbffff754) at /Utilisateurs/cdemko01/php/sapi/cli/php_cli.c:1439 ------------------------------------------------------------------------ [2011-01-14 17:22:42] johan...@php.net Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. what options are you using to compile PHP? - It works for me without segfault: int(1) int(2) array(1) { [1]=> int(2) } ------------------------------------------------------------------------ [2011-01-14 16:55:46] contact at chdemko dot com Description: ------------ The test script (Singleton pattern) leads to a Segmentation error $ php test-trait.php int(1) int(2) array(1) { [1]=> int(2) } Segmentation error Test script: --------------- See http://www.pastie.org/1460398 Expected result: ---------------- int(1) int(2) array(1) { [1]=> int(2) } Actual result: -------------- int(1) int(2) array(1) { [1]=> int(2) } Segmentation error ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53748&edit=1