PDA

View Full Version : Problems rescanning library--mySQL corruption?



evencoil
2010-04-07, 04:08
This problem started happening very suddenly and for no reason that I can discern. On my dedicated squeezecenter box I do a daily full library rescan. Recently my "Playlists" started coming up empty (not a permissions problem). Curiously, if I reboot the machine and then immediately do a full rescan everything is fine. But the daily rescans give me this set of errors in scanner.log:



[10-04-07 05:59:20.5090] Slim::Schema::Storage::throw_exception (81) Error: Error executing 'UPDATE tracks_persistent SET track = ? WHERE ( id = ? )': DBD::mysql::st execute failed: Duplicate entry '38172' for key 2 at /usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 771.
[10-04-07 05:59:20.5288] Slim::Schema::Storage::throw_exception (81) Backtrace:

frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Schema/Storage.pm line 81)
frame 1: Slim::Schema::Storage::throw_exception (/usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 773)
frame 2: DBIx::Class::Storage::DBI::_execute (/usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 797)
frame 3: DBIx::Class::Storage::DBI::update (/usr/share/squeezecenter/CPAN/DBIx/Class/Row.pm line 115)
frame 4: DBIx::Class::Row::update (/usr/share/squeezecenter/CPAN/DBIx/Class/Relationship/CascadeActions.pm line 30)
frame 5: DBIx::Class::Relationship::CascadeActions::update (/usr/share/squeezecenter/CPAN/DBIx/Class/InflateColumn.pm line 222)
frame 6: DBIx::Class::InflateColumn::update (/usr/share/perl5/Slim/Schema/DBI.pm line 35)
frame 7: Slim::Schema::DBI::update (/usr/share/perl5/Slim/Schema.pm line 1040)
frame 8: Slim::Schema::newTrack (/usr/share/perl5/Slim/Utils/Scanner.pm line 340)
frame 9: Slim::Utils::Scanner::scanDirectory (/usr/share/perl5/Slim/Music/MusicFolderScan.pm line 79)
frame 10: Slim::Music::MusicFolderScan::startScan (/usr/share/perl5/Slim/Music/Import.pm line 494)
frame 11: Slim::Music::Import::runImporter (/usr/share/perl5/Slim/Music/Import.pm line 323)
frame 12: Slim::Music::Import::runScan (/usr/sbin/squeezecenter-scanner line 231)
frame 13: (eval) (/usr/sbin/squeezecenter-scanner line 225)
frame 14: main::main (/usr/sbin/squeezecenter-scanner line 371)

[10-04-07 05:59:20.5545] main::main (237) Error: Failed when running main scan: [Carp::Clan::__ANON__(): Error executing 'UPDATE tracks_persistent SET track = ? WHERE ( id = ? )': DBD::mysql::st execute failed: Duplicate entry '38172' for key 2 at /usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 771.
]
[10-04-07 05:59:20.5551] main::main (238) Error: Skipping post-process & Not updating lastRescanTime!


I don't know what that means but my guess is that something to messed up in the mySQL database (the "Duplicate entry" part...)? Any ideas for troubleshooting or fixing this? This is on Ubuntu 8.04 and Squeezecenter 7.3.3 and I've turned off all plugins and it still happens. Thanks!

pfink
2010-04-07, 12:22
This problem started happening very suddenly and for no reason that I can discern. On my dedicated squeezecenter box I do a daily full library rescan. Recently my "Playlists" started coming up empty (not a permissions problem). Curiously, if I reboot the machine and then immediately do a full rescan everything is fine. But the daily rescans give me this set of errors in scanner.log:



[10-04-07 05:59:20.5090] Slim::Schema::Storage::throw_exception (81) Error: Error executing 'UPDATE tracks_persistent SET track = ? WHERE ( id = ? )': DBD::mysql::st execute failed: Duplicate entry '38172' for key 2 at /usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 771.
[10-04-07 05:59:20.5288] Slim::Schema::Storage::throw_exception (81) Backtrace:

frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Schema/Storage.pm line 81)
frame 1: Slim::Schema::Storage::throw_exception (/usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 773)
frame 2: DBIx::Class::Storage::DBI::_execute (/usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 797)
frame 3: DBIx::Class::Storage::DBI::update (/usr/share/squeezecenter/CPAN/DBIx/Class/Row.pm line 115)
frame 4: DBIx::Class::Row::update (/usr/share/squeezecenter/CPAN/DBIx/Class/Relationship/CascadeActions.pm line 30)
frame 5: DBIx::Class::Relationship::CascadeActions::update (/usr/share/squeezecenter/CPAN/DBIx/Class/InflateColumn.pm line 222)
frame 6: DBIx::Class::InflateColumn::update (/usr/share/perl5/Slim/Schema/DBI.pm line 35)
frame 7: Slim::Schema::DBI::update (/usr/share/perl5/Slim/Schema.pm line 1040)
frame 8: Slim::Schema::newTrack (/usr/share/perl5/Slim/Utils/Scanner.pm line 340)
frame 9: Slim::Utils::Scanner::scanDirectory (/usr/share/perl5/Slim/Music/MusicFolderScan.pm line 79)
frame 10: Slim::Music::MusicFolderScan::startScan (/usr/share/perl5/Slim/Music/Import.pm line 494)
frame 11: Slim::Music::Import::runImporter (/usr/share/perl5/Slim/Music/Import.pm line 323)
frame 12: Slim::Music::Import::runScan (/usr/sbin/squeezecenter-scanner line 231)
frame 13: (eval) (/usr/sbin/squeezecenter-scanner line 225)
frame 14: main::main (/usr/sbin/squeezecenter-scanner line 371)

[10-04-07 05:59:20.5545] main::main (237) Error: Failed when running main scan: [Carp::Clan::__ANON__(): Error executing 'UPDATE tracks_persistent SET track = ? WHERE ( id = ? )': DBD::mysql::st execute failed: Duplicate entry '38172' for key 2 at /usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 771.
]
[10-04-07 05:59:20.5551] main::main (238) Error: Skipping post-process & Not updating lastRescanTime!


I don't know what that means but my guess is that something to messed up in the mySQL database (the "Duplicate entry" part...)? Any ideas for troubleshooting or fixing this? This is on Ubuntu 8.04 and Squeezecenter 7.3.3 and I've turned off all plugins and it still happens. Thanks!

Here's an old thread referencing a similar problem:

http://www.mail-archive.com/discuss@lists.slimdevices.com/msg46706.html

http://www.mail-archive.com/discuss@lists.slimdevices.com/msg46768.html

See if any files you've added recently have tags named "ID" or other unusual tags.

evencoil
2010-04-08, 15:30
how can I do this easily? (check for strange tags)? Is it possible to tell from the error which file is causing the problem by looking for the entry in MySQL?

pski
2010-04-08, 19:53
This problem started happening very suddenly and for no reason that I can discern. On my dedicated squeezecenter box I do a daily full library rescan. Recently my "Playlists" started coming up empty (not a permissions problem). Curiously, if I reboot the machine and then immediately do a full rescan everything is fine. But the daily rescans give me this set of errors in scanner.log:



[10-04-07 05:59:20.5090] Slim::Schema::Storage::throw_exception (81) Error: Error executing 'UPDATE tracks_persistent SET track = ? WHERE ( id = ? )': DBD::mysql::st execute failed: Duplicate entry '38172' for key 2 at /usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 771.
[10-04-07 05:59:20.5288] Slim::Schema::Storage::throw_exception (81) Backtrace:

frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Schema/Storage.pm line 81)
frame 1: Slim::Schema::Storage::throw_exception (/usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 773)
frame 2: DBIx::Class::Storage::DBI::_execute (/usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 797)
frame 3: DBIx::Class::Storage::DBI::update (/usr/share/squeezecenter/CPAN/DBIx/Class/Row.pm line 115)
frame 4: DBIx::Class::Row::update (/usr/share/squeezecenter/CPAN/DBIx/Class/Relationship/CascadeActions.pm line 30)
frame 5: DBIx::Class::Relationship::CascadeActions::update (/usr/share/squeezecenter/CPAN/DBIx/Class/InflateColumn.pm line 222)
frame 6: DBIx::Class::InflateColumn::update (/usr/share/perl5/Slim/Schema/DBI.pm line 35)
frame 7: Slim::Schema::DBI::update (/usr/share/perl5/Slim/Schema.pm line 1040)
frame 8: Slim::Schema::newTrack (/usr/share/perl5/Slim/Utils/Scanner.pm line 340)
frame 9: Slim::Utils::Scanner::scanDirectory (/usr/share/perl5/Slim/Music/MusicFolderScan.pm line 79)
frame 10: Slim::Music::MusicFolderScan::startScan (/usr/share/perl5/Slim/Music/Import.pm line 494)
frame 11: Slim::Music::Import::runImporter (/usr/share/perl5/Slim/Music/Import.pm line 323)
frame 12: Slim::Music::Import::runScan (/usr/sbin/squeezecenter-scanner line 231)
frame 13: (eval) (/usr/sbin/squeezecenter-scanner line 225)
frame 14: main::main (/usr/sbin/squeezecenter-scanner line 371)

[10-04-07 05:59:20.5545] main::main (237) Error: Failed when running main scan: [Carp::Clan::__ANON__(): Error executing 'UPDATE tracks_persistent SET track = ? WHERE ( id = ? )': DBD::mysql::st execute failed: Duplicate entry '38172' for key 2 at /usr/share/squeezecenter/CPAN/DBIx/Class/Storage/DBI.pm line 771.
]
[10-04-07 05:59:20.5551] main::main (238) Error: Skipping post-process & Not updating lastRescanTime!


I don't know what that means but my guess is that something to messed up in the mySQL database (the "Duplicate entry" part...)? Any ideas for troubleshooting or fixing this? This is on Ubuntu 8.04 and Squeezecenter 7.3.3 and I've turned off all plugins and it still happens. Thanks!

Remove
Reinstall
Retry

Your log included does not show the first error.

P

evencoil
2010-04-09, 04:04
i try to avoid that solution with squeezecenter since I've had a couple of bad experiences...

but this time it seemed like the easiest solution so i did it and unsurprisingly everything works now.

a little irritating though.

evencoil
2010-04-11, 04:58
I spoke too soon--more problems. Not sure why it worked previously but after another full rescan (which I do nightly) it stopped working so I went back to troubleshooting.

I did the following:
1. Removed all mp3s I've added since the problem began.
2. Completely remove squeezecenter, all preferences and plugins including manually deleting folders and files that weren't handled by apt.
3. Completely removed mysql
4. Rebooted
5. Installed the latest stable version of Squeezecenter and along with it mySQL 5.0.51.

On the freshly loaded SC I also did not include a playlist directory.
Result:


Directory Scan (12356 of 38157) Complete 00:25:20
/media/500GB/music/collection/Iggy Pop/The Idiot/02. Nightclubbing.mp3
Music scan terminated unexpectedly (Directory Scan)
Total Time: 00:25:20 (Sunday, April 11, 2010 / 7:46 AM)


And in server.log:


2010-04-11 07:20:05 squeezeboxserver_safe started.
[10-04-11 07:20:07.5447] main::init (323) Starting Squeezebox Server (v7.5.0, r30464, Thu Apr 1 05:20:51 PDT 2010) perl 5.008008
[10-04-11 07:21:25.8929] Slim::Schema::init (147) Warning: Creating new database - empty database or database from 6.3.x found
[10-04-11 07:21:25.8950] Slim::Schema::Storage::throw_exception (82) Error: DBI Exception: DBD::mysql::st execute failed: Table 'slimserver.dbix_migration' doesn't exist [for Statement "SELECT value FROM dbix_migration WHERE name = ?;
"]
[10-04-11 07:21:25.8957] Slim::Schema::Storage::throw_exception (82) Backtrace:

frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Schema/Storage.pm line 82)
frame 1: Slim::Schema::Storage::throw_exception (/usr/share/squeezeboxserver/CPAN/DBIx/Class/Storage/DBI.pm line 957)
frame 2: DBIx::Class::Storage::DBI::__ANON__ (/usr/share/squeezeboxserver/lib/DBIx/Migration.pm line 237)
frame 3: (eval) (/usr/share/squeezeboxserver/lib/DBIx/Migration.pm line 233)
frame 4: DBIx::Migration::_version (/usr/share/squeezeboxserver/lib/DBIx/Migration.pm line 149)
frame 5: DBIx::Migration::version (/usr/share/perl5/Slim/Schema.pm line 478)
frame 6: Slim::Schema::migrateDB (/usr/share/perl5/Slim/Schema.pm line 161)
frame 7: Slim::Schema::init (/usr/share/perl5/Slim/Music/Import.pm line 744)
frame 8: Slim::Music::Import::_checkLibraryStatus (/usr/share/perl5/Slim/Music/Import.pm line 677)
frame 9: Slim::Music::Import::useImporter (/usr/share/perl5/Slim/Music/MusicFolderScan.pm line 48)
frame 10: Slim::Music::MusicFolderScan::init (/usr/share/perl5/Slim/Utils/Prefs.pm line 769)
frame 11: Slim::Utils::Prefs::__ANON__ (/usr/share/perl5/Slim/Utils/Prefs/Base.pm line 307)
frame 12: Slim::Utils::Prefs::Base::set (/usr/share/perl5/Slim/Web/Settings/Server/Wizard.pm line 106)
frame 13: Slim::Web::Settings::Server::Wizard::handler (/usr/share/perl5/Slim/Web/HTTP.pm line 1118)
frame 14: Slim::Web::HTTP::generateHTTPResponse (/usr/share/perl5/Slim/Web/HTTP.pm line 924)
frame 15: Slim::Web::HTTP::processURL (/usr/share/perl5/Slim/Web/HTTP.pm line 735)
frame 16: Slim::Web::HTTP::processHTTP (/usr/share/perl5/Slim/Networking/IO/Select.pm line 139)
frame 17: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 123)
frame 18: Slim::Networking::IO::Select::__ANON__ (/usr/share/perl5/Slim/Networking/IO/Select.pm line 183)
frame 19: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 183)
frame 20: Slim::Networking::IO::Select::loop (/usr/sbin/squeezeboxserver line 626)
frame 21: main::idle (/usr/sbin/squeezeboxserver line 580)
frame 22: main::main (/usr/sbin/squeezeboxserver line 1072)

[10-04-11 07:21:25.8970] Slim::Schema::Storage::throw_exception (82) Error: DBI Exception: DBD::mysql::st execute failed: Table 'slimserver.dbix_migration' doesn't exist [for Statement "SELECT value FROM dbix_migration WHERE name = ?;
"]
[10-04-11 07:21:25.8977] Slim::Schema::Storage::throw_exception (82) Backtrace:

frame 0: Slim::Utils::Log::logBacktrace (/usr/share/perl5/Slim/Schema/Storage.pm line 82)
frame 1: Slim::Schema::Storage::throw_exception (/usr/share/squeezeboxserver/CPAN/DBIx/Class/Storage/DBI.pm line 957)
frame 2: DBIx::Class::Storage::DBI::__ANON__ (/usr/share/squeezeboxserver/lib/DBIx/Migration.pm line 237)
frame 3: (eval) (/usr/share/squeezeboxserver/lib/DBIx/Migration.pm line 233)
frame 4: DBIx::Migration::_version (/usr/share/squeezeboxserver/lib/DBIx/Migration.pm line 78)
frame 5: DBIx::Migration::migrate (/usr/share/perl5/Slim/Schema.pm line 480)
frame 6: Slim::Schema::migrateDB (/usr/share/perl5/Slim/Schema.pm line 161)
frame 7: Slim::Schema::init (/usr/share/perl5/Slim/Music/Import.pm line 744)
frame 8: Slim::Music::Import::_checkLibraryStatus (/usr/share/perl5/Slim/Music/Import.pm line 677)
frame 9: Slim::Music::Import::useImporter (/usr/share/perl5/Slim/Music/MusicFolderScan.pm line 48)
frame 10: Slim::Music::MusicFolderScan::init (/usr/share/perl5/Slim/Utils/Prefs.pm line 769)
frame 11: Slim::Utils::Prefs::__ANON__ (/usr/share/perl5/Slim/Utils/Prefs/Base.pm line 307)
frame 12: Slim::Utils::Prefs::Base::set (/usr/share/perl5/Slim/Web/Settings/Server/Wizard.pm line 106)
frame 13: Slim::Web::Settings::Server::Wizard::handler (/usr/share/perl5/Slim/Web/HTTP.pm line 1118)
frame 14: Slim::Web::HTTP::generateHTTPResponse (/usr/share/perl5/Slim/Web/HTTP.pm line 924)
frame 15: Slim::Web::HTTP::processURL (/usr/share/perl5/Slim/Web/HTTP.pm line 735)
frame 16: Slim::Web::HTTP::processHTTP (/usr/share/perl5/Slim/Networking/IO/Select.pm line 139)
frame 17: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 123)
frame 18: Slim::Networking::IO::Select::__ANON__ (/usr/share/perl5/Slim/Networking/IO/Select.pm line 183)
frame 19: (eval) (/usr/share/perl5/Slim/Networking/IO/Select.pm line 183)
frame 20: Slim::Networking::IO::Select::loop (/usr/sbin/squeezeboxserver line 626)
frame 21: main::idle (/usr/sbin/squeezeboxserver line 580)
frame 22: main::main (/usr/sbin/squeezeboxserver line 1072)


What else can I possibly try?!?!

evencoil
2010-04-13, 07:19
I traced this down to a single file causing problems.

Bug report:
http://bugs.slimdevices.com/show_bug.cgi?id=16056

goharbourview123
2010-04-13, 08:31
Had a quick look at the file you submitted with the bug and notice that it contains both ID3v2.4 and APEv2 tags. APE tags on MP3 files have caused problems in the past to the SBS scanner. It might be worth trying to remove these (MP3Tag or Foobar2000 are free programs that easily allow you to remove just the APE tags while keeping the ID3 tags).

Of course, if you have other MP3 files with both kinds of tag that are not causing issues, then I'm talking through my hat, and you can just ignore this!

PS Is there a reason why you do a full rescan nightly, and not just a "Look for new and changed music" scan?

evencoil
2010-04-13, 08:39
yeah besides adding music I also delete music as well (moving it between various directories). I found that when I did "check for new and changed" it would fail to delete entries for files I deleted and so I'd end up with dead entires or duplicate entries.

I started doing this a year ago or so though...its possible that this functionality has been changed by now.

Phil Leigh
2010-04-13, 08:59
...its possible that this functionality has been changed by now.

Not yet it hasn't! (not in 7.5)