GNOME Bugzilla – Bug 665222
System.ObjectDisposed exception in Hyena.Data.Sqlite code from System.Threading
Last modified: 2013-02-23 14:52:24 UTC
Originally reported at: https://bugs.launchpad.net/bugs/879076 Sometimes, a song will be playing and banshee will simply crash - leaving no 'error/warning' message and you have to start banshee up again. Stacktrace: ant@Master-Ant:~$ banshee [Info 15:19:20.932] Running Banshee 2.2.1: [Ubuntu 11.10 (linux-gnu, x86_64) @ 2011-11-22 12:10:01 UTC] [Info 15:19:22.348] Updating web proxy from GConf [Info 15:19:22.468] All services are started 1.231323 [Info 15:19:24.045] nereid Client Started [Info 15:19:24.173] GStreamer version 0.10.35.0, gapless: True, replaygain: False Unhandled Exception: System.ObjectDisposedException: The object was used after being disposed. at System.Threading.WaitHandle.CheckDisposed () <0x0004f> at System.Threading.EventWaitHandle.Set () <0x0000f> at (wrapper remoting-invoke-with-check) System.Threading.EventWaitHandle.Set () <0x00053> at Hyena.Data.Sqlite.HyenaSqliteCommand.WaitForResult (Hyena.Data.Sqlite.HyenaSqliteConnection) <0x00067> at Hyena.Data.Sqlite.HyenaSqliteConnection.Execute (Hyena.Data.Sqlite.HyenaSqliteCommand) <0x00037> at Hyena.Data.Sqlite.HyenaSqliteConnection.Execute (string,object[]) <0x00053> at Banshee.SmartPlaylist.SmartPlaylistSource.Refresh () <0x0025b> at Banshee.SmartPlaylist.SmartPlaylistSource.RefreshAndReload () <0x0000f> at Banshee.SmartPlaylist.SmartPlaylistSource.HandleTracksChanged (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x0008b> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x0005e> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at Banshee.Sources.PrimarySource/<OnTracksChanged>c__AnonStorey24.<>m__46 () <0x000a4> at Hyena.ThreadAssist.SpawnFromMain (System.Threading.ThreadStart) <0x0002c> at Banshee.Sources.PrimarySource.OnTracksChanged (Hyena.Query.QueryField[]) <0x0006f> at Banshee.Sources.PrimarySource.NotifyTracksChanged (Hyena.Query.QueryField[]) <0x00018> at Banshee.Collection.Database.DatabaseTrackInfo.Save (bool,Hyena.Query.QueryField[]) <0x00257> at Banshee.Collection.Database.DatabaseTrackInfo.UpdateLastPlayed () <0x00073> at Banshee.GStreamer.PlayerEngine.OnAboutToFinish (intptr) <0x0001a> at (wrapper native-to-managed) Banshee.GStreamer.PlayerEngine.OnAboutToFinish (intptr) <0x0006f> [ERROR] FATAL UNHANDLED EXCEPTION: System.ObjectDisposedException: The object was used after being disposed. at System.Threading.WaitHandle.CheckDisposed () <0x0004f> at System.Threading.EventWaitHandle.Set () <0x0000f> at (wrapper remoting-invoke-with-check) System.Threading.EventWaitHandle.Set () <0x00053> at Hyena.Data.Sqlite.HyenaSqliteCommand.WaitForResult (Hyena.Data.Sqlite.HyenaSqliteConnection) <0x00067> at Hyena.Data.Sqlite.HyenaSqliteConnection.Execute (Hyena.Data.Sqlite.HyenaSqliteCommand) <0x00037> at Hyena.Data.Sqlite.HyenaSqliteConnection.Execute (string,object[]) <0x00053> at Banshee.SmartPlaylist.SmartPlaylistSource.Refresh () <0x0025b> at Banshee.SmartPlaylist.SmartPlaylistSource.RefreshAndReload () <0x0000f> at Banshee.SmartPlaylist.SmartPlaylistSource.HandleTracksChanged (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x0008b> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x0005e> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at (wrapper delegate-invoke) <Module>.invoke_void__this___Source_TrackEventArgs (Banshee.Sources.Source,Banshee.Sources.TrackEventArgs) <0x00095> at Banshee.Sources.PrimarySource/<OnTracksChanged>c__AnonStorey24.<>m__46 () <0x000a4> at Hyena.ThreadAssist.SpawnFromMain (System.Threading.ThreadStart) <0x0002c> at Banshee.Sources.PrimarySource.OnTracksChanged (Hyena.Query.QueryField[]) <0x0006f> at Banshee.Sources.PrimarySource.NotifyTracksChanged (Hyena.Query.QueryField[]) <0x00018> at Banshee.Collection.Database.DatabaseTrackInfo.Save (bool,Hyena.Query.QueryField[]) <0x00257> at Banshee.Collection.Database.DatabaseTrackInfo.UpdateLastPlayed () <0x00073> at Banshee.GStreamer.PlayerEngine.OnAboutToFinish (intptr) <0x0001a> at (wrapper native-to-managed) Banshee.GStreamer.PlayerEngine.OnAboutToFinish (intptr) <0x0006f>
I can confirm this as well. Here is a backtrace: [Info 00:33:25.609] Running Banshee 2.2.1: [Gentoo/banshee/2.2.1 (linux-gnu, x86_64) @ 2011-12-08 12:35:07 Local time zone must be set--see zic manual page] [Info 00:33:26.365] Updating web proxy from GConf [Info 00:33:26.415] All services are started 0,606213 [Info 00:33:28.032] nereid Client Started [Info 00:33:28.106] GStreamer version 0.10.35.0, gapless: True, replaygain: True Unhandled Exception: System.ObjectDisposedException: The object was used after being disposed. at System.Threading.WaitHandle.CheckDisposed () [0x00000] in <filename unknown>:0 at System.Threading.EventWaitHandle.Reset () [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Threading.EventWaitHandle:Reset () at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x00000] in <filename unknown>:0 at Hyena.Data.Sqlite.HyenaSqliteConnection.ProcessQueue () [0x00000] in <filename unknown>:0 at System.Threading.Thread.StartInternal () [0x00000] in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.ObjectDisposedException: The object was used after being disposed. at System.Threading.WaitHandle.CheckDisposed () [0x00000] in <filename unknown>:0 at System.Threading.EventWaitHandle.Reset () [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Threading.EventWaitHandle:Reset () at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x00000] in <filename unknown>:0 at Hyena.Data.Sqlite.HyenaSqliteConnection.ProcessQueue () [0x00000] in <filename unknown>:0 at System.Threading.Thread.StartInternal () [0x00000] in <filename unknown>:0
I have run into the same problem. Here is a very similar stack trace to the above, only with some line references for the Hyena code. Note that this was captured on Banshee 2.2.1 on March 22 (similar timescale to the above), so it is possible it may have been corrected since then. I saved the log, but didn't get around to uploading until now. I'll keep an eye out for future occurrences. [4 Warn 18:30:21.587] Executed in 1511ms DELETE FROM CoreSmartPlaylistEntries WHERE SmartPlaylistID = 338; INSERT INTO CoreSmartPlaylistEntries (EntryID, SmartPlaylistID, TrackID) SELECT NULL, 338 as SmartPlaylistID, TrackId FROM CoreTracks,CoreArtists,CoreAlbums WHERE CoreArtists.ArtistID = CoreTracks.ArtistID AND CoreAlbums.AlbumID = CoreTracks.AlbumID AND CoreTracks.PrimarySourceID = 1 AND ((CoreTracks.TrackID IN (SELECT TrackID FROM CoreSmartPlaylistEntries WHERE SmartPlaylistID = 337))) [27 Debug 18:31:13.634] (libbanshee:player) [Gapless] Requesting next track [27 Debug 18:31:14.606] Starting - Saving Metadata to File Unhandled Exception: System.ObjectDisposedException: The object was used after being disposed. at System.Threading.WaitHandle.CheckDisposed () [0x00000] in <filename unknown>:0 at System.Threading.EventWaitHandle.Reset () [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Threading.EventWaitHandle:Reset () at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x001ad] in /build/buildd/banshee-2.2.1/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:133 at Hyena.Data.Sqlite.HyenaSqliteConnection.ProcessQueue () [0x000ab] in /build/buildd/banshee-2.2.1/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:445 at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.ObjectDisposedException: The object was used after being disposed. at System.Threading.WaitHandle.CheckDisposed () [0x00000] in <filename unknown>:0 at System.Threading.EventWaitHandle.Reset () [0x00000] in <filename unknown>:0 at (wrapper remoting-invoke-with-check) System.Threading.EventWaitHandle:Reset () at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x001ad] in /build/buildd/banshee-2.2.1/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:133 at Hyena.Data.Sqlite.HyenaSqliteConnection.ProcessQueue () [0x000ab] in /build/buildd/banshee-2.2.1/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/HyenaSqliteConnection.cs:445 at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0
(In reply to comment #2) > I have run into the same problem. Here is a very similar stack trace to the > above, only with some line references for the Hyena code. Note that this was > captured on Banshee 2.2.1 on March 22 (similar timescale to the above), so it > is possible it may have been corrected since then. Yes please, can you test with banshee 2.6.0? Thanks
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 629541 ***