After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 675269 - Gtk.events_pending causes segfault
Gtk.events_pending causes segfault
Status: RESOLVED INCOMPLETE
Product: pygobject
Classification: Bindings
Component: introspection
3.2.x
Other Linux
: Normal normal
: ---
Assigned To: Nobody's working on this now (help wanted and appreciated)
Python bindings maintainers
Depends on:
Blocks:
 
 
Reported: 2012-05-01 23:37 UTC by Pavol Klačanský
Modified: 2014-01-28 07:46 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Pavol Klačanský 2012-05-01 23:37:21 UTC
(gdb) run floaty-client 
Starting program: /usr/bin/python3.2 floaty-client
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffeefe8700 (LWP 4395)]
[New Thread 0x7fffee7e7700 (LWP 4396)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff358b4b0 in gdk_window_set_geometry_hints ()
   from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
Comment 1 Martin Pitt 2012-05-03 04:50:24 UTC
Please attach floaty-client, or a small test case. events_pending() generally works here:

$ python3.2
Python 3.2.3 (default, Apr 12 2012, 19:08:59) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from gi.repository import Gtk
>>> Gtk.events_pending
<function events_pending at 0x1c8f2f8>
>>> Gtk.events_pending()
True

events_pending() does not actually do any signal handling, that's done by Gtk.main_iteration(). The latter works fine here as well, I use it in my programs. So it's something specific to your program.
Comment 2 Pavol Klačanský 2012-05-03 11:46:15 UTC
https://code.launchpad.net/~floaty-devs/floaty/trunk

Look at last commit for placement of code.
Comment 3 Pavol Klačanský 2012-05-03 11:47:14 UTC
Maybe I just use it in wrong way. I am newbie in Gtk.
Comment 4 Martin Pitt 2012-05-03 12:36:17 UTC
I still have some trouble running this:

$ glib-compile-schemas data/
$ GSETTINGS_SCHEMA_DIR=data GSETTINGS_BACKEND=memory ./floaty-client 
Traceback (most recent call last):
[...]
gi._glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name com.klacansky.Floaty was not provided by any .service files

So apparently there is another component providing the D-BUS client.

However, some issues here:

        while (Gtk.events_pending):
            Gtk.main_iteration()

events_pending is a method, so you need to call

         while Gtk.events_pending():

otherwise you have an endless loop. Also, this smells awfully like bug 669157. You can try running your client with Python 2.7 and check if it works with that, or try the python3.2 fix which just landed in precise-proposed? (https://launchpad.net/bugs/909292, will still take some two or three hours before it is available).
Comment 5 Pavol Klačanský 2012-05-03 16:26:58 UTC
Sorry, this is service component (you will need u1db and feedparser)

https://launchpad.net/floaty-service

I have tried this, but still getting segfault
while Gtk.events_pending():

going to upgrade
Comment 6 Martin Pitt 2012-05-03 19:37:44 UTC
Indeed, the missing () is totally unrelated to the segfault, it's just a logic error. The fixed python3.2 package is now available in precise-proposed, so please do try it and follow up on https://launchpad.net/bugs/909292 when it works. Thanks!
Comment 7 Pavol Klačanský 2012-05-03 20:06:57 UTC
Hi, I have updated to this package, but still getting segfault
Comment 8 Pavol Klačanský 2012-05-03 20:07:25 UTC


  • #0 gdk_window_set_geometry_hints
    from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
  • #1 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #2 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #3 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #4 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #5 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #6 ??
    from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
  • #7 g_main_context_dispatch
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #8 ??
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #9 g_main_context_iteration
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #10 gtk_main_iteration
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #11 ffi_call_unix64
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #12 ffi_call
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #13 ??
    from /usr/lib/libgirepository-1.0.so.1
  • #14 g_function_info_invoke
    from /usr/lib/libgirepository-1.0.so.1
  • #15 ??
    from /usr/lib/python3/dist-packages/gi/_gi.cpython-32mu.so
  • #16 PyEval_EvalFrameEx
  • #17 PyEval_EvalCodeEx
  • #18 PyEval_EvalFrameEx
  • #19 PyEval_EvalCodeEx
  • #20 function_call
  • #21 PyObject_Call
  • #22 method_call
  • #23 PyObject_Call
  • #24 PyEval_CallObjectWithKeywords
  • #25 ??
    from /usr/lib/python3/dist-packages/gi/_gi.cpython-32mu.so
  • #26 g_closure_invoke
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #27 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #28 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #29 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #30 gtk_widget_size_allocate
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #31 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #32 g_cclosure_marshal_VOID__BOXEDv
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #33 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #34 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #35 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #36 gtk_widget_size_allocate
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #37 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #38 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #39 g_cclosure_marshal_VOID__BOXEDv
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #40 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #41 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #42 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #43 gtk_widget_size_allocate
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #44 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #45 g_cclosure_marshal_VOID__BOXEDv
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #46 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #47 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #48 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #49 gtk_widget_size_allocate
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #50 ??
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #51 g_closure_invoke
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #52 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #53 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #54 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #55 gtk_widget_show
    from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
  • #56 ffi_call_unix64
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #57 ffi_call
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #58 ??
    from /usr/lib/libgirepository-1.0.so.1
  • #59 g_function_info_invoke
    from /usr/lib/libgirepository-1.0.so.1
  • #60 ??
    from /usr/lib/python3/dist-packages/gi/_gi.cpython-32mu.so
  • #61 PyEval_EvalFrameEx
  • #62 PyEval_EvalCodeEx
  • #63 PyEval_EvalFrameEx
  • #64 PyEval_EvalCodeEx
  • #65 function_call
  • #66 PyObject_Call
  • #67 method_call
  • #68 PyObject_Call
  • #69 PyEval_CallObjectWithKeywords
  • #70 ??
    from /usr/lib/python3/dist-packages/gi/_gi.cpython-32mu.so
  • #71 g_closure_invoke
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #72 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #73 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #74 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #75 ??
    from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
  • #76 g_application_run
    from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
  • #77 ffi_call_unix64
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #78 ffi_call
    from /usr/lib/x86_64-linux-gnu/libffi.so.6
  • #79 ??
    from /usr/lib/libgirepository-1.0.so.1
  • #80 g_function_info_invoke
    from /usr/lib/libgirepository-1.0.so.1
  • #81 ??
    from /usr/lib/python3/dist-packages/gi/_gi.cpython-32mu.so
  • #82 PyEval_EvalFrameEx
  • #83 PyEval_EvalCodeEx
  • #84 PyEval_EvalFrameEx
  • #85 PyEval_EvalCodeEx
  • #86 PyEval_EvalCode
  • #87 run_mod
  • #88 PyRun_FileExFlags
  • #89 PyRun_SimpleFileExFlags
  • #90 Py_Main
  • #91 main

Comment 9 Martin Pitt 2013-02-27 15:13:11 UTC
As there are still no complete instructions how to reproduce this, could you please re-check this with latest glib 2.35.x, g-i 1.35.x and pygobject 3.7.90?

Thanks!
Comment 10 Simon Feltman 2014-01-28 07:46:37 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for.
Thanks!