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 566846 - banshee starts with a blank screen when gnome-settings-daemon is not started
banshee starts with a blank screen when gnome-settings-daemon is not started
Status: RESOLVED FIXED
Product: banshee
Classification: Other
Component: general
1.4.1
Other All
: Normal normal
: 1.x
Assigned To: Banshee Maintainers
Banshee Maintainers
: 587865 589068 589827 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-01-06 23:45 UTC by Peter Alfredsen
Modified: 2009-07-27 06:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch that invokes dbus to start gnome-settings-daemon (1.17 KB, patch)
2009-01-06 23:49 UTC, Peter Alfredsen
reviewed Details | Review
banshee-1 --debug (9.88 KB, text/plain)
2009-01-13 21:58 UTC, Peter Alfredsen
  Details
Do not create a PixbufImageSurface if the pixbuf is null (1.24 KB, patch)
2009-02-26 22:32 UTC, Bertrand Lorentz
reviewed Details | Review
Do not call the PixbufImageSurface constructor if the pixbuf is null (5.48 KB, patch)
2009-05-21 15:04 UTC, Bertrand Lorentz
none Details | Review

Description Peter Alfredsen 2009-01-06 23:45:38 UTC
Please describe the problem:
[Info  00:39:54.837] Running Banshee 1.4.1
[Warn  00:39:55.335] Service `Nereid.PlayerInterface' not started: An exception was thrown by the type initializer for Banshee.Collection.Gui.ColumnCellAlbum
[Warn  00:39:55.337] Caught an exception - Object reference not set to an instance of an object (in `Hyena.Gui')
  at Hyena.Gui.PixbufImageSurface..ctor (Gdk.Pixbuf pixbuf, Boolean disposePixbuf) [0x00000]
  at Hyena.Gui.PixbufImageSurface..ctor (Gdk.Pixbuf pixbuf) [0x00000]
  at Banshee.Collection.Gui.ColumnCellAlbum..cctor () [0x00000]
An exception was thrown by the type initializer for Banshee.Collection.Gui.ColumnCellAlbum (in `Banshee.ThickClient')
  at Banshee.Collection.Gui.AlbumListView..ctor () [0x00000]
  at Banshee.Sources.Gui.CompositeTrackSourceContents.InitializeViews () [0x00000]
  at Banshee.Sources.Gui.FilteredListSourceContents..ctor (System.String name) [0x00000]
  at Banshee.Sources.Gui.CompositeTrackSourceContents..ctor () [0x00000]
  at Nereid.PlayerInterface.BuildViews () [0x00000]
  at Nereid.PlayerInterface.BuildPrimaryLayout () [0x00000]
  at Nereid.PlayerInterface.Initialize () [0x00000]
  at Banshee.Gui.BaseClientWindow.InitializeWindow () [0x00000]
  at Banshee.Gui.BaseClientWindow..ctor (System.String title, System.String configNameSpace, Int32 defaultWidth, Int32 defaultHeight) [0x00000]
  at Nereid.PlayerInterface..ctor () [0x00000]
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[],System.Exception&)
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]
[Warn  00:39:55.387] Cannot connect to NetworkManager - An available, working network connection will be assumed
[Info  00:39:55.524] All services are started 0.579536s

(Banshee:4186): Gdk-CRITICAL **: gdk_window_get_origin: assertion `GDK_IS_WINDOW (window)' failed
[Info  00:39:55.802] nereid Client Started


Steps to reproduce:
killall gnome-settings-daemon&&banshee-1



Actual results:
Banshee starts with a blank screen with a grey background and outputs the above error message to console.

Expected results:
Banshee would auto-start gnome-settings-daemon

Does this happen every time?


Other information:
Patch below.
Comment 1 Peter Alfredsen 2009-01-06 23:49:16 UTC
Created attachment 125891 [details] [review]
Patch that invokes dbus to start gnome-settings-daemon
Comment 2 Gabriel Burt 2009-01-13 18:44:23 UTC
This patch doesn't seem like it should be necessary.  Please start banshee, wait till it's up/not printing any more debug information, then run kill -s QUIT [pid of banshee/Nereid] to get a thread dump, and attach or paste inline here.
Comment 3 Gabriel Burt 2009-01-13 18:45:09 UTC
Actually, just run with --debug and ignore the kill -s QUIT thing, but paste the full output w/ --debug on here.
Comment 4 Peter Alfredsen 2009-01-13 21:58:50 UTC
Created attachment 126381 [details]
banshee-1 --debug
Comment 5 Bertrand Lorentz 2009-02-05 21:50:41 UTC
My guess is the crash happens because IconThemeUtils.LoadIcon (image_size, "media-optical") returns null when it's called in ColumnCellAlbum.cs.
I confirmed this be replacing the call with null, and I got the same stacktrace.

It returns null probably because it cannot load the icon from the default theme.
But I don't know much about gnome-settings-daemon, so I might be wrong.

What's the best way to use a dummy/placeholder icon in this case ?
Comment 6 Gabriel Burt 2009-02-13 02:58:44 UTC
Is this a dupe of bug #539762?  It's awfully similar.
Comment 7 Peter Alfredsen 2009-02-13 05:10:14 UTC
If that one is a crasher, then no. This was a hang with a blank screen. I can no longer reproduce this bug since I switched to Gnome as a desktop.
Comment 8 Bertrand Lorentz 2009-02-22 18:51:52 UTC
I'm now experiencing this problem on my XO OLPC laptop, after updating banshee to 1.4.2 (through "yum update"). No blank screen, the banshee UI doesn't appear at all.
1.2.1 didn't have this problem.

Some (rather painful) investigations have shown that IconThemeUtils.LoadIcon (image_size, "media-optical") does return null.

Here's the exception I get :
[Warn  19:42:09.226] Caught an exception - Object reference not set to an instance of an object (in `Hyena.Gui')
  at Hyena.Gui.PixbufImageSurface..ctor (Gdk.Pixbuf pixbuf, Boolean disposePixbuf) [0x00000] in /builddir/build/BUILD/banshee-1-1.4.2/src/Libraries/Hyena.Gui/Hyena.Gui/PixbufImageSurface.cs:60 
  at Hyena.Gui.PixbufImageSurface..ctor (Gdk.Pixbuf pixbuf) [0x00000] in /builddir/build/BUILD/banshee-1-1.4.2/src/Libraries/Hyena.Gui/Hyena.Gui/PixbufImageSurface.cs:56 
  at Banshee.Collection.Gui.ColumnCellAlbum..cctor () [0x00000] 
An exception was thrown by the type initializer for Banshee.Collection.Gui.ColumnCellAlbum (in `Banshee.ThickClient')
  at Banshee.Collection.Gui.AlbumListView..ctor () [0x00000] 
  at Banshee.Sources.Gui.CompositeTrackSourceContents.InitializeViews () [0x00000] 
  at Banshee.Sources.Gui.FilteredListSourceContents..ctor (System.String name) [0x00000] 
  at Banshee.Sources.Gui.CompositeTrackSourceContents..ctor () [0x00000] 
  at Nereid.PlayerInterface.BuildViews () [0x00037] in /builddir/build/BUILD/banshee-1-1.4.2/src/Clients/Nereid/Nereid/PlayerInterface.cs:164 
  at Nereid.PlayerInterface.BuildPrimaryLayout () [0x0002c] in /builddir/build/BUILD/banshee-1-1.4.2/src/Clients/Nereid/Nereid/PlayerInterface.cs:116 
  at Nereid.PlayerInterface.Initialize () [0x00000] in /builddir/build/BUILD/banshee-1-1.4.2/src/Clients/Nereid/Nereid/PlayerInterface.cs:82 
  at Banshee.Gui.BaseClientWindow.InitializeWindow () [0x00000] 
  at Banshee.Gui.BaseClientWindow..ctor (System.String title, System.String configNameSpace, Int32 defaultWidth, Int32 defaultHeight) [0x00000] 
  at Nereid.PlayerInterface..ctor () [0x00007] in /builddir/build/BUILD/banshee-1-1.4.2/src/Clients/Nereid/Nereid/PlayerInterface.cs:76 
  at (wrapper managed-to-native) System.Reflection.MonoCMethod:InternalInvoke (object,object[])
  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x0003f] in /builddir/build/BUILD/mono-1.9.1/mcs/class/corlib/System.Reflection/MonoMethod.cs:404 
Comment 9 Bertrand Lorentz 2009-02-26 22:32:37 UTC
Created attachment 129614 [details] [review]
Do not create a PixbufImageSurface if the pixbuf is null

This patch shows one way I found to handle the missing icon.

I'm not happy about it, because I think it should be handled in PixbufImageSurface. But I'm not sure how to do it.
Comment 10 Gabriel Burt 2009-02-26 23:01:57 UTC
Nothing assumes default_cover_image != null?  Assuming no, this looks fine.  Might be good to see if there is a more generic image that is available on KDE etc, and/or provide our own?  And/or fallback to a "unknown" image?
Comment 11 Bertrand Lorentz 2009-02-27 15:08:41 UTC
default_cover_image == null is properly handled, no icon is displayed.

But the same fix would have to be applied in about 5 other places where PixbufImageSurface is used in the same way. In those places, it's used with the "media-optical", "audio-x-generic", "video-x-generic" and "podcast" icons.

Those chained constructors in PixbufImageSurface are rather annoying and, err, restrictive ;)
Comment 12 Gabriel Burt 2009-02-27 22:01:52 UTC
Oh, I didn't realize PixbufImageSurface was a Hyena class.
Comment 13 Bertrand Lorentz 2009-05-21 15:04:01 UTC
Created attachment 135114 [details] [review]
Do not call the PixbufImageSurface constructor if the pixbuf is null

This patch makes sure that the PixbufImageSurface constructor is not called with a null pixbuf.
I couldn't see a way to handle this in the PixbufImageSurface class, but I'm open to suggestions about it.
Comment 14 Alexander Kojevnikov 2009-05-30 01:16:34 UTC
Looks like it was fixed in this commit: http://git.gnome.org/cgit/banshee/commit/?id=07edaeff263b2c74d38758d48ac0102e987c1f1b
Comment 15 Bertrand Lorentz 2009-05-30 08:30:47 UTC
The commit was reverted, so re-opening, until further investigations.
Comment 16 Bertrand Lorentz 2009-06-08 19:08:00 UTC
The issue was resolved, in a slightly different way, by this commit :
http://git.gnome.org/cgit/banshee/commit/?id=d693c7a0e2fba3c7923d5e447fc8abf33b90dba3
Comment 17 Alexander Kojevnikov 2009-07-06 20:12:00 UTC
*** Bug 587865 has been marked as a duplicate of this bug. ***
Comment 18 Bertrand Lorentz 2009-07-22 19:35:52 UTC
*** Bug 589068 has been marked as a duplicate of this bug. ***
Comment 19 Alexander Kojevnikov 2009-07-27 06:37:33 UTC
*** Bug 589827 has been marked as a duplicate of this bug. ***