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 666452 - Drag and drop crash banshee on gtk3 branch
Drag and drop crash banshee on gtk3 branch
Status: RESOLVED NOTGNOME
Product: banshee
Classification: Other
Component: User Interface
git master
Other Linux
: Normal critical
: ---
Assigned To: Banshee Maintainers
Banshee Maintainers
banshee:gtk3
Depends on:
Blocks: 648121
 
 
Reported: 2011-12-18 12:33 UTC by olivier dufour
Modified: 2013-12-29 15:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description olivier dufour 2011-12-18 12:33:21 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
Comment 1 olivier dufour 2011-12-18 12:37:42 UTC
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
Comment 2 Andrés G. Aragoneses (IRC: knocte) 2012-01-27 01:46:39 UTC
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.
Comment 3 Andrés G. Aragoneses (IRC: knocte) 2012-03-22 10:55:07 UTC
(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?
Comment 4 olivier dufour 2012-03-22 14:05:16 UTC
I will... as soon as possible...
Comment 5 Bertrand Lorentz 2013-09-22 16:31:29 UTC
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]
Comment 6 Andrés G. Aragoneses (IRC: knocte) 2013-09-23 12:21:31 UTC
(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!).
Comment 7 Bertrand Lorentz 2013-09-23 17:22:06 UTC
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.
Comment 8 Andrés G. Aragoneses (IRC: knocte) 2013-09-24 00:18:12 UTC
(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.
Comment 9 Bertrand Lorentz 2013-09-24 17:20:08 UTC
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.
Comment 10 Andrés G. Aragoneses (IRC: knocte) 2013-09-25 00:21:16 UTC
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?
Comment 11 Bertrand Lorentz 2013-09-25 05:51:03 UTC
$  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.
Comment 12 Andrés G. Aragoneses (IRC: knocte) 2013-09-25 11:52:59 UTC
(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.
Comment 13 Bertrand Lorentz 2013-12-29 15:14:38 UTC
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.