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 661112 - banshee window remain white on startup on armel (ArgumentException at Hyena.Gui.Canvas::Size.set_Width )
banshee window remain white on startup on armel (ArgumentException at Hyena.G...
Status: RESOLVED FIXED
Product: banshee
Classification: Other
Component: User Interface
2.2.0
Other Linux
: Normal blocker
: ---
Assigned To: Banshee Maintainers
Banshee Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-10-06 18:11 UTC by Tobin Davis
Modified: 2012-09-13 19:20 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Log of mono --debug /usr/lib/banshee/Banshee.exe (3.94 KB, text/plain)
2011-10-06 18:11 UTC, Tobin Davis
Details
Minimal test case (533 bytes, text/x-csharp)
2011-10-09 09:44 UTC, Bertrand Lorentz
Details

Description Tobin Davis 2011-10-06 18:11:56 UTC
Created attachment 198461 [details]
Log of mono --debug /usr/lib/banshee/Banshee.exe

On all of the ubuntu 11.10 supported armel platforms, the same issue occurs;  Banshee starts, draws a white window with nothing in it, and freezes.  The attached logs show that an exception is thrown during Hyena initialization.

This bug is also being tracked at https://bugs.launchpad.net/ubuntu/+source/banshee/+bug/857299
Comment 1 Bertrand Lorentz 2011-10-09 09:43:33 UTC
Did you try to add some debug statements in CanvasItem.Measure() and the Size constructor ?

From looking at the code, I don't see how the exception could happen :
The Size constructor is called with values calculated like this :
Math.Max (0, <some calculation>)

But then the exception is thrown because the value is negative, which should not be possible.

Maybe this is some floating point calculation issue that only happens on ARM ?

I'll attach a small test case that does basically the same thing as the code in Banshee, could you try to compile and run it ?
Comment 2 Bertrand Lorentz 2011-10-09 09:44:51 UTC
Created attachment 198647 [details]
Minimal test case

Minimal test case that does the same thing as Banshee.

Compile with "mono-csc test_max.cs", run with "mono test_max.exe"
Comment 3 Tobin Davis 2011-10-09 17:02:19 UTC
Ran attached testcase, program returned "size is 0", no exceptions.

I am starting to believe that the exception reported in the failure log is a red herring.  See comments on launchpad bug (above).
Comment 4 Andrés G. Aragoneses (IRC: knocte) 2011-10-24 00:44:54 UTC
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find.

*** This bug has been marked as a duplicate of bug 624976 ***
Comment 5 Andrés G. Aragoneses (IRC: knocte) 2011-10-24 07:43:59 UTC
Oops, I think it's not exactly the same stacktrace.
Comment 6 Tobin Davis 2011-10-25 17:50:00 UTC
I just tested the patch attached to bug 624976 and it makes banshee work on arm (omap4 Pandaboard) running Ubuntu Oneiric 11.10, albeit with a lot more noise on the gnome terminal.  Will pick apart the patch a little to see exactly what is allowing forward progress to be made, and where the bad data may be coming from, as well as why it is different on arm vs x86 (both images should be nearly identical).
Comment 7 Andrés G. Aragoneses (IRC: knocte) 2011-10-25 20:00:59 UTC
(In reply to comment #6)
> I just tested the patch attached to bug 624976 and it makes banshee work on arm
> (omap4 Pandaboard) running Ubuntu Oneiric 11.10, albeit with a lot more noise
> on the gnome terminal.  Will pick apart the patch a little to see exactly what
> is allowing forward progress to be made, and where the bad data may be coming
> from, as well as why it is different on arm vs x86 (both images should be
> nearly identical).

That's good to know! I guess the part that makes it work is the replacement of the ArgumentException with the simple overwrite of the incoming value to 0 in the property setter when it is lower than zero.

The bug lies then in the fact that there is somewhere where the property is being set to a negative value. I'll try to look at how this happens in bug 624976, but cannot check why it happens in this case because I don't have an ARM device ready to test! So I hope you can figure out, I can try to help where I can.

Thanks
Comment 8 David Nielsen 2011-11-03 00:17:43 UTC
For reference, I can start up Banshee just fine on a Genesi MX ARM netbook upgraded to Oneiric. I haven't spent time testing Banshee extensively on this machine but I am unable to reproduce the problem.
Comment 9 Andrew Wafaa 2011-11-07 21:54:04 UTC
I've just finished installing Linaro's Ubuntu spin on an OMAP4 powered Pandaboard, and tested the default Banshee in Oneric.

When connected to my TV via HDMI all I get is a white screen, then the app hangs. What gets interesting is if I ssh into the Pandaboard, I can fire up banshee but it fails to respond properly (oh and it looks ugly, reminds me of GNOME 1.x :) )

Output from terminal is:

andrew@linaro-ubuntu-desktop:~$ banshee 
[Info  21:51:24.826] Running Banshee 2.2.0: [Ubuntu oneiric (development branch) (linux-gnueabi, arm) @ 2011-09-23 05:07:31 UTC]
[Warn  21:51:26.607] DBus support could not be started. Disabling for this session. - System.ArgumentNullException: Argument cannot be null.
Parameter name: address (in `dbus-sharp')
  at DBus.Bus.Open (System.String address) [0x00000] in <filename unknown>:0 
  at DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
System.Exception: Unable to open the session message bus. (in `dbus-sharp')
  at DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
  at DBus.BusG.Init () [0x00000] in <filename unknown>:0 
  at Banshee.ServiceStack.DBusConnection.Connect (System.String serviceName, Boolean init) [0x00000] in <filename unknown>:0 
  at Banshee.ServiceStack.DBusConnection.Connect (System.String serviceName) [0x00000] in <filename unknown>:0 
[Warn  21:51:27.096] Cannot connect to NetworkManager or Wicd - An available, working network connection will be assumed
[Warn  21:51:29.393] Caught an exception - GLib.GException: Icon 'process-working' not present in theme (in `gtk-sharp')
  at Gtk.IconTheme.LoadIcon (System.String icon_name, Int32 size, IconLookupFlags flags) [0x00000] in <filename unknown>:0 
  at Banshee.Gui.Widgets.TaskStatusIcon..ctor () [0x00000] in <filename unknown>:0 
[Info  21:51:29.832] Updating web proxy from GConf
[Warn  21:51:30.198] Caught an exception - System.ArgumentNullException: Argument cannot be null.
Parameter name: address (in `dbus-sharp')
  at DBus.Bus.Open (System.String address) [0x00000] in <filename unknown>:0 
  at DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
[Warn  21:51:30.201] Extension `Banshee.SoundMenu.SoundMenuService' not started: Unable to open the session message bus.
[Warn  21:51:30.218] Caught an exception - System.ApplicationException: No support GNOME Settings Daemon could be reached. (in `Banshee.MultimediaKeys')
  at Banshee.MultimediaKeys.MultimediaKeysService.Banshee.ServiceStack.IExtensionService.Initialize () [0x00000] in <filename unknown>:0 
  at Banshee.ServiceStack.ServiceManager.StartExtension (Mono.Addins.TypeExtensionNode node) [0x00000] in <filename unknown>:0 
[Warn  21:51:30.220] Extension `Banshee.MultimediaKeys.MultimediaKeysService' not started: No support GNOME Settings Daemon could be reached.

(Banshee:2772): Gtk-WARNING **: Refusing to add non-unique action 'CloseAction' to action group 'Global'
[Warn  21:51:30.229] Caught an exception - System.ArgumentNullException: Argument cannot be null.
Parameter name: address (in `dbus-sharp')
  at DBus.Bus.Open (System.String address) [0x00000] in <filename unknown>:0 
  at DBus.Bus.get_Session () [0x00000] in <filename unknown>:0 
[Warn  21:51:30.231] Extension `Banshee.SoundMenu.SoundMenuService' not started: Unable to open the session message bus.
[Warn  21:51:30.232] Caught an exception - System.ApplicationException: No support GNOME Settings Daemon could be reached. (in `Banshee.MultimediaKeys')
  at Banshee.MultimediaKeys.MultimediaKeysService.Banshee.ServiceStack.IExtensionService.Initialize () [0x00000] in <filename unknown>:0 
  at Banshee.ServiceStack.ServiceManager.StartExtension (Mono.Addins.TypeExtensionNode node) [0x00000] in <filename unknown>:0 
[Warn  21:51:30.233] Extension `Banshee.MultimediaKeys.MultimediaKeysService' not started: No support GNOME Settings Daemon could be reached.
[Info  21:51:30.241] All services are started 3.620575
[Info  21:51:31.611] AmazonMP3 store redirect URL: https://one.ubuntu.com/music/store/amz/
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to handle the exception.
System.ArgumentException: Value does not fall within the expected range.
  at Hyena.Gui.Canvas.Size.set_Width (Double value) [0x00000] in <filename unknown>:0 
  at Hyena.Gui.Canvas.Size..ctor (Double width, Double height) [0x00000] in <filename unknown>:0 
  at Hyena.Gui.Canvas.CanvasItem.Measure (Size available) [0x00000] in <filename unknown>:0 
  at Hyena.Gui.Canvas.TextBlock.Measure (Size available) [0x00000] in <filename unknown>:0 
  at Hyena.Gui.Canvas.StackPanel.Measure (Size available) [0x00000] in <filename unknown>:0 
  at Hyena.Data.Gui.DataViewLayoutGrid.InvalidateChildSize () [0x00000] in <filename unknown>:0 
  at Hyena.Data.Gui.DataViewLayout.Allocate (Rect actualAllocation) [0x00000] in <filename unknown>:0 
  at Hyena.Data.Gui.ListView`1[Banshee.Collection.AlbumInfo].OnSizeAllocated (Rectangle allocation) [0x00000] in <filename unknown>:0 
  at Gtk.Widget.sizeallocated_cb (IntPtr widget, IntPtr allocation) [0x00000] in <filename unknown>:0 
   at Gtk.Widget.sizeallocated_cb(IntPtr widget, IntPtr allocation)
   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)
   at System.AppDomain.ExecuteAssemblyInternal(System.Reflection.Assembly a, System.String[] args)
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile, System.Security.Policy.Evidence assemblySecurity, System.String[] args)
   at System.AppDomain.ExecuteAssembly(System.String assemblyFile)
   at Booter.Booter.BootClient(System.String clientName)
   at Booter.Booter.Main()
^C

I will investigate further and will try the test case
Comment 10 olivier dufour 2011-12-22 11:53:09 UTC
Can you check the value of the env var DBUS_SESSION_BUS_ADDRESS.

Because it must be set but seems null on your system.

For example on my pc :

env | grep 'DBUS'
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-LBH62GEE0n,guid=9a6d688b01f27de8383ae11c0000001e
Comment 11 olivier dufour 2011-12-22 11:56:36 UTC
according to this page, it mean that dbus daemon is not launched.
http://linux.die.net/man/1/dbus-launch
Comment 12 Andrés G. Aragoneses (IRC: knocte) 2011-12-22 11:58:54 UTC
Olivier, the DBUS failure is only emitting a warning, so Banshee should be able to start anyway.

I'll test turning off DBUS on my machine soon to see if I can reproduce the bug this way.
Comment 13 Andrés G. Aragoneses (IRC: knocte) 2011-12-22 18:48:00 UTC
(In reply to comment #12)
> I'll test turning off DBUS on my machine soon to see if I can reproduce the bug
> this way.

I tested this by doing DBUS_SESSION_BUS_ADDRESS=foo make run , and Banshee still works for me...
Comment 14 Andrés G. Aragoneses (IRC: knocte) 2012-09-13 19:20:15 UTC
I applied a similar fix to the one for bug 624976: http://git.gnome.org/browse/hyena/commit/?id=20ef00dae30cfe1d8edc6cb4c6f13ece5df015e8 . Hopefully it will make the bug go away as it did in that case (if it doesn't, please reopen the bug!).

This problem has been fixed in the development version. The fix will be available in the next major software release (2.5.1). Thank you for your bug report.