I uploaded the fix for Quantal to the -proposed queue for SRU team
review.
** Changed in: pygobject (Ubuntu Quantal)
Status: New => In Progress
** Description changed:
In a complex application, I'm seeing crashes when the destroy notify of
GLib.child_watch_add is called.
#0 0x00000000004b5c78 in tupledealloc.24592 (op=0x316dc80)
- at ../Objects/tupleobject.c:218
- #1 0x00002b7c1553abc7 in child_watch_dnotify (data=0x345a320)
- at /build/buildd/pygobject-3.4.0/gi/_glib/glibmodule.c:355
- #2 0x00002b7c1409c108 in g_source_callback_unref (cb_data=0x3475f40)
- at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:1457
- #3 g_source_callback_unref (cb_data=0x3475f40)
- at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:1449
- #4 0x00002b7c1409c70a in g_source_destroy_internal (source=source@entry=
- 0x3471370, context=context@entry=0x1d08a30,
have_lock=have_lock@entry=1)
- at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:1123
- #5 0x00002b7c1409eb00 in g_main_dispatch (context=0x1d08a30)
- at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:2739
+ at ../Objects/tupleobject.c:218
+ #1 0x00002b7c1553abc7 in child_watch_dnotify (data=0x345a320)
+ at /build/buildd/pygobject-3.4.0/gi/_glib/glibmodule.c:355
+ #2 0x00002b7c1409c108 in g_source_callback_unref (cb_data=0x3475f40)
+ at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:1457
+ #3 g_source_callback_unref (cb_data=0x3475f40)
+ at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:1449
+ #4 0x00002b7c1409c70a in g_source_destroy_internal (source=source@entry=
+ 0x3471370, context=context@entry=0x1d08a30,
have_lock=have_lock@entry=1)
+ at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:1123
+ #5 0x00002b7c1409eb00 in g_main_dispatch (context=0x1d08a30)
+ at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:2739
The problem has been fixed upstream
http://git.gnome.org/browse/pygobject/commit/?h=pygobject-3-4&id=a06e0d021d74c95cd517abb3e6ef5ff0037de679
+
+ REGRESSION POTENTIAL: Very low. This just adds locking around the
+ reference handling to avoid race conditions with concurrent access.
+ pyglib_gil_state_{ensure,release}() is used all over the place in
+ pygobject, but it was forgotten in this particular function.
+
+ SRU TEST CASE: This is rather hard to reproduce, as it is a race
+ condition in a multi-threaded program. As Daniel can reproduce it rather
+ well, I suggest to ask him to verify the SRU.
** Changed in: pygobject (Ubuntu Quantal)
Assignee: (unassigned) => Martin Pitt (pitti)
--
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to pygobject in Ubuntu.
https://bugs.launchpad.net/bugs/1078297
Title:
Crashes with GLib.child_watch_add
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pygobject/+bug/1078297/+subscriptions
--
desktop-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs