closing error dialog (System.IndexOutOfRangeException) closes banshee

Bug #391241 reported by Bronsen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
banshee (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

When advancing to the next item in my playlist, banshee will sometimes display an error message:

"Banshee Encountered a Fatal Error
Array index is out of range"

Banshee keeps playing the song though. The fatality is evident when I click the "Close" button of the error window: banshee immediately stops playing and exits.

However, I haven't found a reliable way to replicate this behavior. When I manually advance to the next song, no errors occur.

In my ~/.xsession-errors I find this:
====================================
[Info 19:43:52.277] Running Banshee 1.5.0: [Ubuntu karmic (development branch) (linux-gnu, x86_64) @ 2009-06-04 08:50:45 UTC]
[Info 19:43:53.907] All services are started 1.469112s
[Info 19:43:54.607] nereid Client Started

** (Banshee:23781): WARNING **: Could not seek in stream
[Error 19:45:10.481] GStreamer stream error: Decode
taglib-sharp caught exception creating tag: TagLib.CorruptFileException: Frame data incomplete.
  at TagLib.Id3v2.Frame.FieldData (TagLib.ByteVector frameData, Int32 offset, Byte version) [0x00000]
  at TagLib.Id3v2.Frame.SetData (TagLib.ByteVector data, Int32 offset, Byte version, Boolean readHeader) [0x00000]
  at TagLib.Id3v2.UnknownFrame..ctor (TagLib.ByteVector data, Int32 offset, FrameHeader header, Byte version) [0x00000]
  at TagLib.Id3v2.FrameFactory.CreateFrame (TagLib.ByteVector data, System.Int32& offset, Byte version, Boolean alreadyUnsynched) [0x00000]
  at TagLib.Id3v2.Tag.Parse (TagLib.ByteVector data) [0x00000]
  at TagLib.Id3v2.Tag.Read (TagLib.File file, Int64 position) [0x00000]
  at TagLib.Id3v2.Tag..ctor (TagLib.File file, Int64 position) [0x00000]
  at TagLib.NonContainer.StartTag.ReadTag (System.Int64& start) [0x00000]
Array index is out of range.
System.IndexOutOfRangeException: Array index is out of range.
at NDesk.DBus.MessageReader.MarshalUInt (byte*) <0x0003b>
  at TagLib.NonContainer.StartTag.ReadTag (System.Int64& start) [0x00000]
Array index is out of range.
System.IndexOutOfRangeException: Array index is out of range.
at NDesk.DBus.MessageReader.MarshalUInt (byte*) <0x0003b>
at NDesk.DBus.MessageReader.ReadUInt32 () <0x0001f>
at NDesk.DBus.MessageReader.ReadString () <0x0000f>
at NDesk.DBus.MessageReader.ReadValue (System.Type) <0x000fb>
at NDesk.DBus.MessageReader.ReadStruct (System.Type) <0x00097>
at NDesk.DBus.MessageReader.ReadValue (System.Type) <0x00287>
at NDesk.DBus.MessageHelper.GetDynamicValues (NDesk.DBus.Message,System.Type[]) <0x00093>
at NDesk.DBus.BusObject.SendMethodCall (string,string,string,NDesk.DBus.MessageWriter,System.Type,System.Exception&) <0x001b7>
at INotificationsProxy.get_ServerInformation () <0x00073>
at Notifications.Global.get_ServerInformation () <0x00023>
at Banshee.NotificationArea.NotificationAreaService.get_IsNotificationDaemon () <0x0002f>
at Banshee.NotificationArea.NotificationAreaService.ShowTrackNotification () <0x00157>
at Banshee.NotificationArea.NotificationAreaService.OnPlayerEvent (Banshee.MediaEngine.PlayerEventArgs) <0x00063>
at Banshee.MediaEngine.PlayerEngineService.RaiseEvent (Banshee.MediaEngine.PlayerEventArgs) <0x00132>
at Banshee.MediaEngine.PlayerEngineService.OnEngineEventChanged (Banshee.MediaEngine.PlayerEventArgs) <0x000cb>
at Banshee.MediaEngine.PlayerEngine.RaiseEventChanged (Banshee.MediaEngine.PlayerEventArgs) <0x00027>
at Banshee.MediaEngine.PlayerEngine.OnEventChanged (Banshee.MediaEngine.PlayerEventArgs) <0x00047>
at Banshee.MediaEngine.PlayerEngine.OnEventChanged (Banshee.MediaEngine.PlayerEvent) <0x00032>
at Banshee.GStreamer.PlayerEngine.OnStateChange (intptr,Banshee.GStreamer.GstState,Banshee.GStreamer.GstState,Banshee.GStreamer.GstState) <0x0007f>
at (wrapper native-to-managed) Banshee.GStreamer.PlayerEngine.OnStateChange (intptr,Banshee.GStreamer.GstState,Banshee.GStreamer.GstState,Banshee.GStreamer.GstState) <0x0007e>
at (wrapper managed-to-native) Gtk.Application.gtk_main () <0x00052>
at Gtk.Application.Run () <0x0000b>
at Banshee.Gui.GtkBaseClient.Run () <0x00047>
at Banshee.Gui.GtkBaseClient.Startup () <0x00046>
at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.CleanRoomStartup/StartupInvocationHandler) <0x00099>

taglib-sharp caught exception creating tag: TagLib.CorruptFileException: Frame data incomplete.
  at TagLib.Id3v2.Frame.FieldData (TagLib.ByteVector frameData, Int32 offset, Byte version) [0x00000]
  at TagLib.Id3v2.Frame.SetData (TagLib.ByteVector data, Int32 offset, Byte version, Boolean readHeader) [0x00000]
  at TagLib.Id3v2.UnknownFrame..ctor (TagLib.ByteVector data, Int32 offset, FrameHeader header, Byte version) [0x00000]
  at TagLib.Id3v2.FrameFactory.CreateFrame (TagLib.ByteVector data, System.Int32& offset, Byte version, Boolean alreadyUnsynched) [0x00000]
  at TagLib.Id3v2.Tag.Parse (TagLib.ByteVector data) [0x00000]
  at TagLib.Id3v2.Tag.Read (TagLib.File file, Int64 position) [0x00000]
  at TagLib.Id3v2.Tag..ctor (TagLib.File file, Int64 position) [0x00000]
  at TagLib.NonContainer.StartTag.ReadTag (System.Int64& start) [0x00000]
====================================

Description: Ubuntu karmic (development branch)
Release: 9.10

banshee:
  Installed: 1.5.0-0ubuntu1~hyper2
  Candidate: 1.5.0-0ubuntu1~hyper2
  Version table:
 *** 1.5.0-0ubuntu1~hyper2 0
        500 http://ppa.launchpad.net karmic/main Packages
        100 /var/lib/dpkg/status
     1.4.3-5 0
        500 http://de.archive.ubuntu.com karmic/universe Packages

I would be nice if "Close" only closed the error window and let banshee keep playing.

Revision history for this message
JonasL (jonas.lieb) wrote :

I encounter the same behavior. It seems to happen every time when a notification pops up (song change).
My error message:

-------------------------------------------------------------------------------
An unhandled exception was thrown: Array index is out of range.

at NDesk.DBus.MessageReader.MarshalUInt (byte*) <0x0002d>
at NDesk.DBus.MessageReader.ReadUInt32 () <0x00018>
at NDesk.DBus.MessageReader.ReadValue (NDesk.DBus.DType) <0x00113>
at NDesk.DBus.MessageReader.ReadValue (System.Type) <0x00235>
at NDesk.DBus.MessageHelper.GetDynamicValues (NDesk.DBus.Message,System.Reflection.ParameterInfo[]) <0x000d5>
at NDesk.DBus.Connection.HandleSignal (NDesk.DBus.Message) <0x000f4>
at NDesk.DBus.Connection.DispatchSignals () <0x0003c>
at NDesk.DBus.Connection.Iterate () <0x0002c>
at <Init>c__AnonStorey0.<>m__0 (intptr,NDesk.GLib.IOCondition,intptr) <0x0002a>
at (wrapper native-to-managed) <Init>c__AnonStorey0.<>m__0 (intptr,NDesk.GLib.IOCondition,intptr) <0x00049>
at (wrapper managed-to-native) Gtk.Application.gtk_main () <0x00004>
at Gtk.Application.Run () <0x00007>
at Banshee.Gui.GtkBaseClient.Run () <0x00035>
at Banshee.Gui.GtkBaseClient.Startup () <0x00031>
at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.CleanRoomStartup/StartupInvocationHandler) <0x000a2>

.NET Version: 2.0.50727.42
OS Version: Unix 2.6.28.11

Assembly Version Information:

avahi-sharp (1.0.0.0)
Mono.Zeroconf.Providers.Avahi (2.0.0.76)
Mono.Zeroconf (2.0.0.76)
Mtp (1.4.0.0)
ipod-sharp (0.0.1.0)
Banshee.Dap.Mtp (1.4.0.0)
Banshee.Dap.MassStorage (1.4.0.0)
taglib-sharp (2.0.3.2)
Banshee.InternetRadio (1.4.0.0)
Banshee.FileSystemQueue (1.4.0.0)
Mono.Media (1.4.0.0)
Banshee.PlayQueue (1.4.0.0)
Banshee.CoverArt (1.4.0.0)
Banshee.MultimediaKeys (1.4.0.0)
Migo (1.4.0.0)
Banshee.Podcasting (1.4.0.0)
notify-sharp (0.4.0.0)
Banshee.NotificationArea (1.4.0.0)
Lastfm (1.4.0.0)
Banshee.Lastfm (1.4.0.0)
Banshee.Bookmarks (1.4.0.0)
Banshee.Daap (1.4.0.0)
Banshee.AudioCd (1.4.0.0)
pango-sharp (2.12.0.0)
Banshee.Widgets (1.4.0.0)
Banshee.Dap.Ipod (1.4.0.0)
Banshee.Dap (1.4.0.0)
Banshee.Hal (1.4.0.0)
Banshee.Unix (1.4.0.0)
Banshee.GStreamer (1.4.0.0)
gconf-sharp (2.24.0.0)
Banshee.Gnome (1.4.0.0)
Banshee.NowPlaying (1.4.0.0)
System.Transactions (2.0.0.0)
NDesk.DBus.GLib (1.0.0.0)
Mono.Cairo (2.0.0.0)
System.Data (2.0.0.0)
Mono.Data.SqliteClient (2.0.0.0)
System.Xml (2.0.0.0)
gdk-sharp (2.12.0.0)
Mono.Addins (0.4.0.0)
atk-sharp (2.12.0.0)
Hyena.Gui (1.4.0.0)
gtk-sharp (2.12.0.0)
Banshee.ThickClient (1.4.0.0)
Nereid (1.4.0.0)
NDesk.DBus.Proxies (0.0.0.0)
Mono.Posix (2.0.0.0)
Banshee.Core (1.4.0.0)
System (2.0.0.0)
Hyena (1.4.0.0)
NDesk.DBus (1.0.0.0)
glib-sharp (2.12.0.0)
Banshee.Services (1.4.0.0)
Banshee (1.4.0.0)
mscorlib (2.0.0.0)

Platform Information: Linux 2.6.28-11-generic i686 unknown GNU/Linux

Disribution Information:

[/etc/lsb-release]
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

[/etc/debian_version]
5.0

Revision history for this message
Chow Loong Jin (hyperair) wrote : Re: [Bug 391241] Re: closing error dialog (System.IndexOutOfRangeException) closes banshee

Hi. Thanks for taking the time to report this bug. Are you running xfce4-notifyd
by any chance? If so, please post your xfce4-notifyd version. If not, what
notification daemon are you using? (notify-osd, notification-daemon, or
something else?)

--
Kind regards,
Chow Loong Jin (GPG: 0x8F02A411)
Ubuntu Contributing Developer

Revision history for this message
Bronsen (housetier-deactivatedaccount) wrote :

According to /usr/lib/notify-osd/notify-osd there is already a process for notifications:

** (notify-osd:28261): WARNING **: Another instance has already registered org.freedesktop.Notifications

** (notify-osd:28261): WARNING **: Could not register instance

Running "notification-properties" reveals more error messages:

libnotify-Message: GetServerInformation call failed: Too few arguments in reply
libnotify-Message: Error getting spec version
libnotify-Message: GetServerInformation call failed: Too few arguments in reply
libnotify-Message: Error getting spec version

And finally notify-send:

notify-send foo blah
libnotify-Message: GetServerInformation call failed: Too few arguments in reply
libnotify-Message: Error getting spec version

Revision history for this message
Bronsen (housetier-deactivatedaccount) wrote :

I made sure to only have notify-osd or notification-daemon installed; in either case this error still occurred.

Revision history for this message
Chow Loong Jin (hyperair) wrote :

On Wednesday 30,September,2009 07:45 AM, housetier wrote:
> I made sure to only have notify-osd or notification-daemon installed; in
> either case this error still occurred.
>
Try running `ps aux | grep notif` in a terminal to see what processes might be
grabbing that D-Bus address. Or if you have d-feet installed, you could look for
org.freedesktop.Notifications in the session bus and see what's using it. Then
kill that process.

--
Kind regards,
Chow Loong Jin (GPG: 0x8F02A411)
Ubuntu Contributing Developer

Revision history for this message
Bronsen (housetier-deactivatedaccount) wrote :

It seems my window manager (awesome) is using or.freedesktop.Notifications: http://img16.imageshack.us/img16/300/dfeet.png

BTW: When I downgrade to banshee 1.4, I have no crashes and also see notifications about song changes.

Revision history for this message
Chow Loong Jin (hyperair) wrote :

This was fixed sometime before 1.7.1, which has been uploaded to Ubuntu Maverick.

Changed in banshee (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.