GNOME Bugzilla – Bug 666452
Drag and drop crash banshee on gtk3 branch
Last modified: 2013-12-29 15:14:38 UTC
When you drag and drop from anywhere to anywhere(tracklist, sourceview,...) it crash. It always happend on my config. On gtk3 branch, banshee crash with this message. (Nereid:3488): GLib-GObject-CRITICAL **: g_object_remove_toggle_ref: assertion `G_IS_OBJECT (object)' failed (Nereid:3488): GLib-GObject-CRITICAL **: g_object_remove_toggle_ref: assertion `G_IS_OBJECT (object)' failed (Nereid:3488): GLib-GObject-CRITICAL **: g_object_remove_toggle_ref: assertion `G_IS_OBJECT (object)' failed Domain: 'Gtk' Level: Critical Message: gtk_drag_set_icon_surface: assertion `GDK_IS_DRAG_CONTEXT (context)' failed Trace follows: at GLib.Log.PrintTraceLogFunction(System.String domain, LogLevelFlags level, System.String message) at GLib.Log.NativeCallback(IntPtr log_domain_native, LogLevelFlags flags, IntPtr message_native, IntPtr user_data) at System.Object.wrapper_native_0x41ac1e60(IntPtr , IntPtr ) at Gtk.Widget.InternalDragBegin(Gdk.DragContext context) at Gtk.Widget.OnDragBegin(Gdk.DragContext context) at Banshee.Sources.Gui.SourceView.OnDragBegin(Gdk.DragContext context) at Gtk.Widget.DragBegin_cb(IntPtr inst, IntPtr context) at System.Object.wrapper_native_0x41abe7a0(IntPtr , IntPtr ) at Gtk.Application.gtk_main() at Gtk.Application.Run() at Banshee.Gui.GtkBaseClient.Run() at Banshee.Gui.GtkBaseClient.Startup() at Hyena.Gui.CleanRoomStartup.Startup(Hyena.Gui.StartupInvocationHandler startup) at Banshee.Gui.GtkBaseClient.Startup() at Banshee.Gui.GtkBaseClient.Startup(System.String[] args) at Nereid.Client.Main(System.String[] args) (Nereid:3488): Gdk-CRITICAL **: gdk_drag_status: assertion `GDK_IS_DRAG_CONTEXT (context)' failed ** GLib-GObject:ERROR:/build/buildd/glib2.0-2.30.0/./gobject/gobject.c:2496:toggle_refs_notify: assertion failed: (tstack.n_toggle_refs == 1) Stacktrace: at (wrapper managed-to-native) Gtk.Application.gtk_main () <IL 0x00022, 0xffffffff> at Gtk.Application.Run () [0x00000] in /home/dufoli/src/gtk-sharp/gtk/Application.cs:128 at Banshee.Gui.GtkBaseClient.Run () [0x00013] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:214 at Banshee.Gui.GtkBaseClient.Startup () [0x00000] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:78 at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.CleanRoomStartup/StartupInvocationHandler) [0x00044] in /home/dufoli/src/banshee/src/Hyena/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:54 at Banshee.Gui.GtkBaseClient.Startup<T> () [0x00024] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:73 at Banshee.Gui.GtkBaseClient.Startup<T> (string[]) [0x00020] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:63 at Nereid.Client.Main (string[]) [0x00000] in /home/dufoli/src/banshee/src/Clients/Nereid/Nereid/Client.cs:54 at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff> Native stacktrace: /opt/mono-2.10/bin/mono() [0x80dde9b] [0x4002040c] Debug info from gdb: Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf ptrace: Opération non permise. No threads. ================================================================= Got a SIGABRT while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= /bin/bash : ligne 1 : 3488 Abandon /opt/mono-2.10/bin/mono --debug Nereid.exe --debug --uninstalled make: *** [run] Erreur 134 banshee:gtk3
the previous stack trace and crash appear on source view. Here is the one with track list which is a bit different. I have maybe to set up 2 differents bugs because stack trace are not the same but I guess that the bug is the same behind... : GLib-GObject:ERROR:/build/buildd/glib2.0-2.30.0/./gobject/gobject.c:2496:toggle_refs_notify: assertion failed: (tstack.n_toggle_refs == 1) Stacktrace: at (wrapper managed-to-native) Gtk.Application.gtk_main () <IL 0x00022, 0xffffffff> at Gtk.Application.Run () [0x00000] in /home/dufoli/src/gtk-sharp/gtk/Application.cs:128 at Banshee.Gui.GtkBaseClient.Run () [0x00013] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:214 at Banshee.Gui.GtkBaseClient.Startup () [0x00000] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:78 at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.CleanRoomStartup/StartupInvocationHandler) [0x00044] in /home/dufoli/src/banshee/src/Hyena/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:54 at Banshee.Gui.GtkBaseClient.Startup<T> () [0x00024] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:73 at Banshee.Gui.GtkBaseClient.Startup<T> (string[]) [0x00020] in /home/dufoli/src/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:63 at Nereid.Client.Main (string[]) [0x00000] in /home/dufoli/src/banshee/src/Clients/Nereid/Nereid/Client.cs:54 at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff> Native stacktrace: /opt/mono-2.10/bin/mono() [0x80dde9b] [0x4002040c] Debug info from gdb: Could not attach to process. If your uid matches the uid of the target process, check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user. For more details, see /etc/sysctl.d/10-ptrace.conf ptrace: Opération non permise. No threads. ================================================================= Got a SIGABRT while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= /bin/bash : ligne 1 : 5281 Abandon /opt/mono-2.10/bin/mono --debug Nereid.exe --debug --uninstalled make: *** [run] Erreur 134
I cannot reproduce this bug olivier, are you in 32 or 64bits? I'm on 64bits. Anyway I have a toggleref patch that I haven't sent yet to MKestner, hopefully it will help this, I'll send it soon.
(In reply to comment #2) > I cannot reproduce this bug olivier, are you in 32 or 64bits? I'm on 64bits. I tested this again, but this time on 32 bits, and it still doesn't crash for me. Olivier, can you test this again with latest gtk-sharp and latest gtk3 branch? And tell exactly what source you're dragging from and what's the destination please (just in case the bug is not really in all cases: "anywhere to anywhere"). Bertrand: can you reproduce this?
I will... as soon as possible...
I can reproduce this consistently with the latest gtk-sharp and banshee from git master. It crashes if I try to drag a track from the ListView to a playlist, or if I try to move a track inside a ListView. Here's the stack trace I get: GLib-GObject:ERROR:/build/buildd/glib2.0-2.36.3/./gobject/gobject.c:2732:toggle_refs_notify: assertion failed: (tstack.n_toggle_refs == 1) Unable to open ~/.mtpz-data for reading, MTPZ disabled.Stacktrace: at (wrapper managed-to-native) Gtk.Application.gtk_main () <IL 0x0000e, 0xffffffff> at Gtk.Application.Run () [0x00000] in /home/lorentz/Projets/gtk-sharp/gtk/Application.cs:131 at Banshee.Gui.GtkBaseClient.Run () [0x00000] in /home/lorentz/Projets/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:224 at Banshee.Gui.GtkBaseClient.Startup () [0x00000] in /home/lorentz/Projets/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:79 at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.CleanRoomStartup/StartupInvocationHandler) [0x00044] in /home/lorentz/Projets/banshee/src/Hyena/Hyena.Gui/Hyena.Gui/CleanRoomStartup.cs:54 at Banshee.Gui.GtkBaseClient.Startup<T> () [0x0002a] in /home/lorentz/Projets/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:74 at Banshee.Gui.GtkBaseClient.Startup<T> (string[]) [0x00020] in /home/lorentz/Projets/banshee/src/Core/Banshee.ThickClient/Banshee.Gui/GtkBaseClient.cs:64 at Nereid.Client.Main (string[]) [0x00000] in /home/lorentz/Projets/banshee/src/Clients/Nereid/Nereid/Client.cs:54 at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff> Native stacktrace: /usr/bin/mono() [0x4961e9] /lib/x86_64-linux-gnu/libpthread.so.0(+0xfbd0) [0x2aaaab3f0bd0] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37) [0x2aaaab635037] /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) [0x2aaaab638698] /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_assertion_message+0x136) [0x2aaaac642256] /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x6b7b4) [0x2aaaac6427b4] /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0(+0x15163) [0x2aaaaea6e163] /usr/lib/x86_64-linux-gnu/libgdk-3.so.0(gdk_event_free+0x8e) [0x2aaab40270de] /usr/lib/x86_64-linux-gnu/libgdk-3.so.0(+0x507ba) [0x2aaab40507ba] /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x135) [0x2aaaac61fd75] /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x490b8) [0x2aaaac6200b8] /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0x6a) [0x2aaaac62052a] /usr/lib/x86_64-linux-gnu/libgtk-3.so.0(gtk_main+0x85) [0x2aaaaf89d275]
(In reply to comment #5) > I can reproduce this consistently with the latest gtk-sharp and banshee from > git master. > It crashes if I try to drag a track from the ListView to a playlist, or if I > try to move a track inside a ListView. Interesting, those use cases work for me (can't reproduce the bug). Can you tell me what distro and version you have? As for me: Ubuntu 13.04 64bits. BTW, I saw that gtk-sharp still doesn't have a 2.99.1 tag. Is it because you think that the fix for this bug would be in gtk# and you consider that this bug is a blocker for the release? Or do you think that generally this bug should be a blocker for banshee's 2.9.0 release? If yes, I'm willing to try to fix it, but first I need to reproduce it :) If not, then I propose to fix this bug for the 2.9.1 release (and if I still not reproduce it, we could look at it together in the upcoming hackfest!).
I'm also running Ubuntu 13.04, with mono 2.10.8.1-5ubuntu1. It's a pretty bad bug, but I don't see it as blocking, as it doesn't it everybody. Furhtermore, we don't know if the problem is in Banshee or gtk-sharp. By the way, in gtk-sharp, the sample/testdnd.exe test works for me. gtk-sharp 2.99.1 is not released yet, I'll do it tonight or tomorrow.
(In reply to comment #7) > I'm also running Ubuntu 13.04, with mono 2.10.8.1-5ubuntu1. You told me on IRC that you were using 64 bits like me, so the only difference between us was the version of Mono used (me: 3.0.6 from meebey's PPA). But I just fired up a new VM inside VirtualBox, installed Ubuntu 13.04 64bits in it, and with stock Mono (2.10), I ran banshee master, and I still don't reproduce it! > It's a pretty bad bug, but I don't see it as blocking, as it doesn't hit > everybody. But to the people it hits, it hits reliably 100% of the time, right? > Furhtermore, we don't know if the problem is in Banshee or > gtk-sharp. True... I hope we can kill it in the hackfest then. > By the way, in gtk-sharp, the sample/testdnd.exe test works for me. Arf! That's even more puzzling. > gtk-sharp 2.99.1 is not released yet, I'll do it tonight or tomorrow. Ok, BTW I sent 2 pull requests that would be great to get in before the release.
Looks like it always crashed for me, at least 10 times out of 10. Thanks for your tests, I'll try to dig into it later on.
Wait a second... (In reply to comment #5) > GLib-GObject:ERROR:/build/buildd/glib2.0-2.36.3/./gobject > /gobject.c:2732:toggle_refs_notify: <snip /> What version is that, 2.36.3? That is weird. Do you really have that version in your installed packages? I don't: knocte@ulises:~$ dpkg --list | grep libglib2.0- ii libglib2.0-0:amd64 2.36.0-1ubuntu2 amd64 GLib library of C routines ii libglib2.0-0:i386 2.36.0-1ubuntu2 i386 GLib library of C routines ii libglib2.0-bin 2.36.0-1ubuntu2 amd64 Programs for the GLib library Can you run that query yourself? I personally don't know why my system has the :i386 package installed BTW... But certainly having a different glib version would be weird. Are you using that new version from a PPA?
$ dpkg --list | grep libglib2.0 ii libglib2.0-0:amd64 2.36.3-0ubuntu1~raring1 amd64 GLib library of C routines ii libglib2.0-bin 2.36.3-0ubuntu1~raring1 amd64 Programs for the GLib library ii libglib2.0-cil 2.12.10-5 amd64 CLI binding for the GLib utility library 2.12 ii libglib2.0-cil-dev 2.12.10-5 amd64 CLI binding for the GLib utility library 2.12 ii libglib2.0-data 2.36.3-0ubuntu1~raring1 all Common files for GLib library ii libglib2.0-dev 2.36.3-0ubuntu1~raring1 amd64 Development files for the GLib library Those newer versions are indeed coming from the GNOME 3 PPA: https://launchpad.net/~gnome3-team/+archive/gnome3 Looking at Olivier's first stack trace, the crash also happened for him with glib 2.30.0, so I'm not sure the glib version is a factor.
(In reply to comment #11) > ... > ii libglib2.0-cil 2.12.10-5 For the record, in my list I stripped the -cil, -cil-dev, -data and -dev packages because I guess they're not relevant to this. > Those newer versions are indeed coming from the GNOME 3 PPA: > https://launchpad.net/~gnome3-team/+archive/gnome3 Interesting! Just in case, I've tried to apply this PPA to my VirtualBox VM, following this mini-guide (http://www.webupd8.org/2013/03/gnome-38-beta-available-in-ppa-for.html) which basically told me to: sudo add-apt-repository ppa:gnome3-team/gnome3 sudo apt-get update After that, it is not clear what to do. In the mini-guide it says to "manually" update a lot of packages from the PackageManagement gui, but I was looking for a command-line fast approach, so I did what is mentioned in the PPA page: sudo apt-get dist-upgrade This upgraded lots of packages. Then I rebooted the machine. The results were: a) I now have same version of glib as you (2.36.3-0ubuntu1~raring1), however: b) The desktop still starts with Unity, not Gnome shell (how to fix this? I even installed gnome-shell pkg manually later, to no avail). c) I still cannot reproduce this bug.
This works for me now, drag-n-drop works for tracks from the ListView to a playlist, or inside the ListView. This was probably a bug in an underlying library (mono, glib, gtk ?), which was fixed in the meantime. So I'm marking this as NOTGNOME, feel free to re-open this bug if you can reproduce the problem and help track it down.