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 735090 - Crash in 3.13.x
Crash in 3.13.x
Status: RESOLVED FIXED
Product: pygobject
Classification: Bindings
Component: gobject
3.13.x
Other Linux
: Normal critical
: ---
Assigned To: Nobody's working on this now (help wanted and appreciated)
Python bindings maintainers
Depends on:
Blocks:
 
 
Reported: 2014-08-20 10:19 UTC by Peter Robinson
Modified: 2014-08-21 15:22 UTC
See Also:
GNOME target: 3.14
GNOME version: ---


Attachments
Minimal reproducer (906 bytes, text/plain)
2014-08-20 20:13 UTC, Simon Feltman
  Details
Skip marshalling NULL output arguments in Python closures (1.18 KB, patch)
2014-08-20 20:58 UTC, Simon Feltman
committed Details | Review

Description Peter Robinson 2014-08-20 10:19:14 UTC
We're seeing the following crash in virt-manager on Fedora 21 with 3.13.x

Downstream bug with all the info is:
https://bugzilla.redhat.com/show_bug.cgi?id=1130758

Let me know if you need further information


  • #0 _pygi_closure_handle
  • #1 ffi_closure_unix64_inner
    at ../src/x86/ffi64.c line 670
  • #2 ffi_closure_unix64
    at ../src/x86/unix64.S line 229
  • #3 gtk_cell_renderer_real_get_preferred_size
  • #4 gtk_cell_renderer_get_preferred_width
  • #5 gtk_cell_area_request_renderer
  • #6 compute_size
  • #7 gtk_cell_area_box_get_preferred_width
  • #8 gtk_tree_view_column_cell_get_size
  • #9 validate_row
  • #10 do_presize_handler
  • #11 presize_handler_callback
  • #12 gtk_widget_on_frame_clock_update
  • #13 _g_closure_invoke_va
  • #14 g_signal_emit_valist
  • #15 g_signal_emit_by_name
  • #16 gdk_frame_clock_paint_idle
  • #17 gdk_threads_dispatch
  • #18 g_timeout_dispatch
  • #19 g_main_context_dispatch
  • #20 g_main_context_iterate.isra
  • #21 g_main_context_iteration
  • #22 g_application_run
  • #23 ffi_call_unix64
    at ../src/x86/unix64.S line 76
  • #24 ffi_call
    at ../src/x86/ffi64.c line 525
  • #25 pygi_invoke_c_callable
  • #26 pygi_function_cache_invoke
  • #27 _callable_info_call
  • #28 PyObject_Call
    at /usr/src/debug/Python-2.7.8/Objects/abstract.c line 2529
  • #29 PyEval_EvalFrameEx
    at /usr/src/debug/Python-2.7.8/Python/ceval.c line 4328
  • #30 PyEval_EvalFrameEx
    at /usr/src/debug/Python-2.7.8/Python/ceval.c line 4133

Comment 1 Cole Robinson 2014-08-20 14:32:10 UTC
A bit more details from the original bug:

This seems to be reliably reproducible with virt-manager: there's been at least 6-7 people who have joined the bug since it was filed 3 days ago.

All the reports started coming in 2 days after 3.13.4 was built for Fedora. Previously 3.13.2 was in Fedora for 2 months. 3.13.90 also reproduces the bug
Comment 2 Adam Williamson 2014-08-20 14:55:52 UTC
there's an explicit note in the downstream bug that downgrading to 3.12.1 (of pygobject) avoids the crash: https://bugzilla.redhat.com/show_bug.cgi?id=1130758#c18

I am hitting this on F21 (as other reporters) and am often available on IRC as adamw if any info is required.
Comment 3 André Klapper 2014-08-20 19:38:34 UTC
Stacktrace with debug symbols welcome
Comment 4 Simon Feltman 2014-08-20 20:13:50 UTC
Created attachment 284006 [details]
Minimal reproducer

The problem has to do with the latest unified marshalling work that was done in bug 727004.

Notice GtkCellRenderer code calling the vfunc always passes NULL outputs for x_offset and y_offset which was not being checked in the new code. Should be an easy fix.

https://git.gnome.org/browse/gtk+/tree/gtk/gtkcellrenderer.c?id=3.13.7#n1304
Comment 5 Simon Feltman 2014-08-20 20:58:31 UTC
Verfied virt-manager is working now. I'll make sure to roll a new 3.13.91
release soon.


The following fix has been pushed:
92f0d6e Skip marshalling NULL output arguments in Python closures
Comment 6 Simon Feltman 2014-08-20 20:58:34 UTC
Created attachment 284007 [details] [review]
Skip marshalling NULL output arguments in Python closures

Skip marshalling optional output arguments which are passed NULL
as the memory location. This fixes fallout from bug 727004.