#47063 [Opn]: PHP-GTK
| From: | db4fn1 dot snl at gishpuppy dot com | Date: | Thu, 15 Jan 2009 20:30:26 +0000 |
| Subject: | #47063 [Opn]: PHP-GTK | ||
| References: | 1 | Groups: | php.gtk.dev |
| Request: | Send a blank email to php-gtk-dev+get-4314@lists.php.net to get a copy of this message | ||
ID: 47063
User updated by: db4fn1 dot snl at gishpuppy dot com
Reported By: db4fn1 dot snl at gishpuppy dot com
Status: Open
Bug Type: PHP-GTK related
Operating System: Ubuntu
PHP Version: 5.2.8
New Comment:
Using some packages I found on the Internet
(http://www.compdigitec.com/labs/2009/01/14/binary-packages-php-cli-528-and-php-gtk-201/),
it can be confirmed this bug still exists:
$ php --version
PHP 5.2.8 (cli) (built: Jan 11 2009 11:58:17) (DEBUG)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
$ php -c phpgtk.ini app.php
Segmentation fault (core dumped)
$ gdb php core
GNU gdb 6.8-debian
Copyright (C) 2008 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 "i486-linux-gnu"...
(no debugging symbols found)
Reading symbols from /lib/tls/i686/cmov/libcrypt.so.1...(no debugging
symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libcrypt.so.1
Reading symbols from /usr/lib/libz.so.1...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libexslt.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libexslt.so.0
Reading symbols from /usr/lib/libtidy-0.99.so.0...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libtidy-0.99.so.0
Reading symbols from /lib/tls/i686/cmov/librt.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/librt.so.1
Reading symbols from /usr/lib/libmysqlclient.so.15...(no debugging
symbols found)...done.
Loaded symbols for /usr/lib/libmysqlclient.so.15
Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0
Reading symbols from /usr/lib/libmhash.so.2...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libmhash.so.2
Reading symbols from /lib/tls/i686/cmov/libresolv.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libresolv.so.2
Reading symbols from /lib/tls/i686/cmov/libdl.so.2...(no debugging
symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libdl.so.2
Reading symbols from /lib/tls/i686/cmov/libnsl.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libnsl.so.1
Reading symbols from /usr/lib/i686/cmov/libssl.so.0.9.8...(no debugging
symbols found)...done.
Loaded symbols for /usr/lib/i686/cmov/libssl.so.0.9.8
Reading symbols from /usr/lib/i686/cmov/libcrypto.so.0.9.8...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i686/cmov/libcrypto.so.0.9.8
Reading symbols from /usr/lib/libcurl.so.4...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libcurl.so.4
Reading symbols from /usr/lib/libgssapi_krb5.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgssapi_krb5.so.2
Reading symbols from /usr/lib/libidn.so.11...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libidn.so.11
Reading symbols from /usr/lib/libldap_r-2.4.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libldap_r-2.4.so.2
Reading symbols from /usr/lib/libkrb5.so.3...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libkrb5.so.3
Reading symbols from /usr/lib/libk5crypto.so.3...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libk5crypto.so.3
Reading symbols from /lib/libcom_err.so.2...(no debugging symbols
found)...done.
Loaded symbols for /lib/libcom_err.so.2
Reading symbols from /usr/lib/libxslt.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxslt.so.1
Reading symbols from /lib/tls/i686/cmov/libm.so.6...(no debugging
symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libm.so.6
Reading symbols from /usr/lib/libxml2.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /lib/tls/i686/cmov/libc.so.6...(no debugging
symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /lib/libgcrypt.so.11...
(no debugging symbols found)...done.
Loaded symbols for /lib/libgcrypt.so.11
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols
found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /usr/lib/libkrb5support.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libkrb5support.so.0
Reading symbols from /lib/libkeyutils.so.1...(no debugging symbols
found)...done.
Loaded symbols for /lib/libkeyutils.so.1
Reading symbols from /usr/lib/liblber-2.4.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/liblber-2.4.so.2
Reading symbols from /usr/lib/libsasl2.so.2...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libsasl2.so.2
Reading symbols from /usr/lib/libgnutls.so.26...
---Type <return> to continue, or q <return> to quit---
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgnutls.so.26
Reading symbols from /usr/lib/libtasn1.so.3...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libtasn1.so.3
Reading symbols from /lib/libgpg-error.so.0...
(no debugging symbols found)...done.
Loaded symbols for /lib/libgpg-error.so.0
Reading symbols from
/usr/lib/php/extensions/debug-non-zts-20060613/php_gtk2.so...(no
debugging symbols found)...done.
Loaded symbols for
/usr/lib/php/extensions/debug-non-zts-20060613/php_gtk2.so
Reading symbols from /usr/lib/libgtk-x11-2.0.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgtk-x11-2.0.so.0
Reading symbols from /usr/lib/libgdk-x11-2.0.so.0...(no debugging
symbols found)...done.
Loaded symbols for /usr/lib/libgdk-x11-2.0.so.0
Reading symbols from /usr/lib/libpangoft2-1.0.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpangoft2-1.0.so.0
Reading symbols from /usr/lib/libgdk_pixbuf-2.0.so.0...(no debugging
symbols found)...done.
Loaded symbols for /usr/lib/libgdk_pixbuf-2.0.so.0
Reading symbols from /usr/lib/libpangocairo-1.0.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpangocairo-1.0.so.0
Reading symbols from /usr/lib/libgio-2.0.so.0...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libgio-2.0.so.0
Reading symbols from /usr/lib/libcairo.so.2...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libcairo.so.2
Reading symbols from /usr/lib/libfreetype.so.6...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libfreetype.so.6
Reading symbols from /usr/lib/libfontconfig.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libfontconfig.so.1
Reading symbols from /usr/lib/libatk-1.0.so.0...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libatk-1.0.so.0
Reading symbols from /usr/lib/libpango-1.0.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpango-1.0.so.0
Reading symbols from /usr/lib/libgobject-2.0.so.0...(no debugging
symbols found)...done.
Loaded symbols for /usr/lib/libgobject-2.0.so.0
Reading symbols from /usr/lib/libgmodule-2.0.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgmodule-2.0.so.0
Reading symbols from /usr/lib/libgthread-2.0.so.0...(no debugging
symbols found)...done.
Loaded symbols for /usr/lib/libgthread-2.0.so.0
Reading symbols from /usr/lib/libglib-2.0.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libglib-2.0.so.0
Reading symbols from /usr/lib/libstdc++.so.6...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/libgcc_s.so.1...
(no debugging symbols found)...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /usr/lib/libX11.so.6...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libX11.so.6
Reading symbols from /usr/lib/libXcomposite.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXcomposite.so.1
Reading symbols from /usr/lib/libXdamage.so.1...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libXdamage.so.1
Reading symbols from /usr/lib/libXfixes.so.3...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXfixes.so.3
Reading symbols from /usr/lib/libXext.so.6...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libXext.so.6
Reading symbols from /usr/lib/libXrender.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXrender.so.1
Reading symbols from /usr/lib/libXinerama.so.1...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libXinerama.so.1
Reading symbols from /usr/lib/libXi.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXi.so.6
Reading symbols from /usr/lib/libXrandr.so.2...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libXrandr.so.2
Reading symbols from /usr/lib/libXcursor.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXcursor.so.1
Reading symbols from /lib/libselinux.so.1...(no debugging symbols
found)...done.
Loaded symbols for /lib/libselinux.so.1
Reading symbols from /usr/lib/libpixman-1.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libpixman-1.so.0
Reading symbols from /usr/lib/libpng12.so.0...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libpng12.so.0
Reading symbols from /usr/lib/libxcb-render-util.so.0...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxcb-render-util.so.0
Reading symbols from /usr/lib/libxcb-render.so.0...(no debugging
symbols found)...done.
Loaded symbols for /usr/lib/libxcb-render.so.0
Reading symbols from /usr/lib/libxcb.so.1...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxcb.so.1
Reading symbols from /usr/lib/libexpat.so.1...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libexpat.so.1
Reading symbols from /lib/libpcre.so.3...
(no debugging symbols found)...done.
Loaded symbols for /lib/libpcre.so.3
Reading symbols from /usr/lib/libxcb-xlib.so.0...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libxcb-xlib.so.0
Reading symbols from /usr/lib/libXau.so.6...
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libXau.so.6
Reading symbols from /usr/lib/libXdmcp.so.6...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/libXdmcp.so.6
Reading symbols from /lib/tls/i686/cmov/libnss_files.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libnss_files.so.2
Reading symbols from /lib/tls/i686/cmov/libnss_compat.so.2...(no
debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libnss_compat.so.2
Reading symbols from /lib/tls/i686/cmov/libnss_nis.so.2...
(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libnss_nis.so.2
Reading symbols from
/usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so...(no debugging symbols
found)...done.
Loaded symbols for /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so
Reading symbols from /usr/lib/gconv/ISO8859-1.so...
---Type <return> to continue, or q <return> to quit---
(no debugging symbols found)...done.
Loaded symbols for /usr/lib/gconv/ISO8859-1.so
(no debugging symbols found)
Core was generated by `php -c phpgtk.ini app.php'.
Program terminated with signal 11, Segmentation fault.
[New process 18495]
#0 0xb735b761 in ?? ()
from /usr/lib/php/extensions/debug-non-zts-20060613/php_gtk2.so
(gdb) bt
#0 0xb735b761 in ?? ()
from /usr/lib/php/extensions/debug-non-zts-20060613/php_gtk2.so
#1 0x083f0a0d in ?? ()
#2 0x083f162c in ?? ()
#3 0x083f057c in execute ()
#4 0x083cbb22 in zend_execute_scripts ()
#5 0x08378479 in php_execute_script ()
#6 0x08446a35 in main ()
(gdb)
Previous Comments:
------------------------------------------------------------------------
[2009-01-15 01:30:43] auroraeosrose@php.net
At the moment it appears the issue is in the GTK library itself. I
can't get this to reproduce on Ubuntu x86, only on x64, as well which
makes it very difficult to track down.
If you are using append_text methods with GtkComboBox you SHOULD be
using the static constructor anyway - the methods will not work properly
with a regular GtkComboBox
See
http://library.gnome.org/devel/gtk/stable/GtkComboBox.html#gtk-combo-box-append-text
(which is the C level call we're wrapping)
------------------------------------------------------------------------
[2009-01-15 00:57:39] db4fn1 dot snl at gishpuppy dot com
Is there a long-term fix for the original script without having to
modify the script? We have hundreds of scripts using "new GtkComboBox()"
and fixing them will cost a lot of time.
------------------------------------------------------------------------
[2009-01-14 23:03:38] bmajdak@php.net
i am researching this a bit. however the following solution will get
you past your immediate problem:
http://php.pastebin.com/f7bcedbd5
e.g. replacing "new GtkComboBox()" with "GtkComboBox::new_text()"
------------------------------------------------------------------------
[2009-01-14 22:22:14] db4fn1 dot snl at gishpuppy dot com
The actual segmentation fault occurs with the following script:
http://php.pastebin.com/d9d5fc14
------------------------------------------------------------------------
[2009-01-11 01:32:32] auroraeosrose@php.net
I do NOT get a crash - however the reproduce script is incorrect and
throws GTK warnings and a fatal error
http://php.pastebin.com/f3a9d9ba7 - This has correct
fixes for the code
Notice you cannot use insert_text unless you've used
GtkComboBox::new_text(); when creating the combo box - this is mentioned
in the documentation at gtk.php.net
In addition the "main loop" is Gtk::main(); not Gtk::show();
you don't need to set things visible, you can just use the show_all();
method on your main window.
Finally, you are using PHP built with the Suhosin-Patch which is known
to have conflicts with some PHP extensions. Try removing the patch or
building a PHP CLI just for your PHP-GTK extensions.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/47063
--
Edit this bug report at http://bugs.php.net/?id=47063&edit=1