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 667355 - SQL error
SQL error
Status: RESOLVED FIXED
Product: banshee
Classification: Other
Component: general
git master
Other Linux
: Normal blocker
: ---
Assigned To: Banshee Maintainers
Banshee Maintainers
: 667154 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-01-05 13:25 UTC by pakar
Modified: 2012-01-08 12:09 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (878 bytes, patch)
2012-01-05 16:38 UTC, pakar
none Details | Review

Description pakar 2012-01-05 13:25:42 UTC
Doing some generic debugging on the latest git-master. (Feedback not needed)

After upgrading from latest stable and starting freshly built 2.3.3 this happens from time to time when doing a fingerprint on a song... Have not recreated the database yet...

sqlite-3.7.7.1

Result of this is of course a crash..

Will update bug if problem does not appear after recreating the database.

[9 Debug 15:20:07.626] Watcher: sleeping 1ms
[9 Debug 15:20:07.628] Watcher: sleeping 2ms
[4 Debug 15:20:07.644] Exception executing command: 
                INSERT INTO CoreRemovedTracks (DateRemovedStamp, TrackID, Uri)
                    SELECT 1325773207, TrackID, CoreTracks.Uri
                    FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE '')
                ;
                DELETE FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE '')
[4 Warn  15:20:07.646] Caught an exception - Hyena.Data.Sqlite.SqliteException: Sqlite error 1: ESCAPE expression must be a single character (SQL: 
                INSERT INTO CoreRemovedTracks (DateRemovedStamp, TrackID, Uri)
                    SELECT 1325773207, TrackID, CoreTracks.Uri
                    FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE '')
                ;
                DELETE FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE '')) (in `Hyena.Data.Sqlite')
  at Hyena.Data.Sqlite.Connection.CheckError (Int32 errorCode, System.String sql) [0x0003b] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/Sqlite.cs:107 
  at Hyena.Data.Sqlite.Connection.Execute (System.String sql) [0x00000] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/Sqlite.cs:133 
  at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x000a8] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:110 

Unhandled Exception: Hyena.Data.Sqlite.SqliteException: Sqlite error 1: ESCAPE expression must be a single character (SQL: 
                INSERT INTO CoreRemovedTracks (DateRemovedStamp, TrackID, Uri)
                    SELECT 1325773207, TrackID, CoreTracks.Uri
                    FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE '')
                ;
                DELETE FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE ''))
  at Hyena.Data.Sqlite.Connection.CheckError (Int32 errorCode, System.String sql) [0x0003b] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/Sqlite.cs:107 
  at Hyena.Data.Sqlite.Connection.Execute (System.String sql) [0x00000] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/Sqlite.cs:133 
  at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x000a8] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:110 
[ERROR] FATAL UNHANDLED EXCEPTION: Hyena.Data.Sqlite.SqliteException: Sqlite error 1: ESCAPE expression must be a single character (SQL: 
                INSERT INTO CoreRemovedTracks (DateRemovedStamp, TrackID, Uri)
                    SELECT 1325773207, TrackID, CoreTracks.Uri
                    FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE '')
                ;
                DELETE FROM CoreTracks WHERE TrackID IN (SELECT TrackID FROM CoreTracks
                      WHERE CoreTracks.Uri LIKE 'file:///Music/AC\_DC/Live/2-02\%20Are\%20You\%20Ready.mp3/_%' ESCAPE ''))
  at Hyena.Data.Sqlite.Connection.CheckError (Int32 errorCode, System.String sql) [0x0003b] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/Sqlite.cs:107 
  at Hyena.Data.Sqlite.Connection.Execute (System.String sql) [0x00000] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/Sqlite.cs:133 
  at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x000a8] in /var/tmp/portage/media-sound/banshee-9999/work/banshee-9999/src/Hyena/Hyena.Data.Sqlite/Hyena.Data.Sqlite/HyenaSqliteCommand.cs:110
Comment 1 pakar 2012-01-05 14:47:58 UTC
Exact same problem happens when starting with a clean database.
Comment 2 pakar 2012-01-05 16:38:04 UTC
Created attachment 204696 [details] [review]
patch

"ESCAPE '\\'" instead of "ESCAPE '\'"
Comment 3 pakar 2012-01-05 16:38:51 UTC
The problem seems to be related to the librarywatcher together with fingerprinting. If library watcher is disabled the problem does not seem to appear.

See the uploaded patch.
Comment 4 Bertrand Lorentz 2012-01-08 11:58:36 UTC
Good catch, and thanks for the patch !

This was caused by recent refactoring, which messed up the SQL query escaping.

I've committed a different patch, taking the opportunity to try to make the query construction a bit clearer:
http://git.gnome.org/browse/banshee/commit/?id=48f6ac2b9d
Comment 5 Bertrand Lorentz 2012-01-08 12:09:54 UTC
*** Bug 667154 has been marked as a duplicate of this bug. ***