Amarok not adding newly added files to my collection

Frederik Himpe fhimpe at telenet.be
Sun Jul 22 21:35:31 UTC 2007


On Sun, 22 Jul 2007 18:14:16 +0200, Harald Sitter wrote:

> On Sunday 22 July 2007 17:42:35 Frederik Himpe wrote:
>> I'm clearly not the only one having trouble with Amarok's collection
>> scanner then. Can somebody of the developers comment on this, how we
>> could help debugging this further? This seems like a showstopper to fix
>> for 1.4.7...
> 
> I don't consider 2 reports as a showstopper.

Maybe not for you, but for me as a user suffering this problem, it is (I
temporarily switched to another player)

> Anyway, letz digg into the problem:
> * What distribution are you using?

Mandriva Cooker x86_64

> * What filesystem are you using?

XFS

> * What database are you using?

sqlite (system sqlite 3.4.0)

> * How did you install Amarok?

Mandriva Cooker RPMS

> * Please compile with ... --enable-debug=full ... and have a look
> whether
>  Amarok outputs anything useful to STDOUT.

Thanks for this hint, this got me in the right direction, as now there's 
a lot of debugging info which was not there. It seems there are problems 
in the database. First I made a dump and restore of the collection.db, to 
be sure the db was not corrupted. This seemed to solve some errors. Now 
when I move an album, there is still this error left though, and the 
album does not appear in the collection:

amarok: BEGIN: void ScanController::initIncremental()
amarok:           [MountPointManager] Trying to update 1432 statistics 
rows
amarok:           [ScanController] Collection dir changed: /mnt/Music/
Pearl Jam
amarok:           [ScanController] Collection was modified.
amarok: END__: void ScanController::initIncremental() - Took 0.13s
amarok: END__: ScanController::ScanController(CollectionDB*, bool, const 
QStringList&) - Took 0.13s
amarok: BEGIN: virtual void ThreadManager::Thread::run()
amarok: BEGIN: virtual bool ScanController::doJob()
amarok: BEGIN: SqliteConnection::SqliteConnection(const SqliteConfig*)
amarok: END__: SqliteConnection::SqliteConnection(const SqliteConfig*) - 
Took 0.00046s
amarok: BEGIN: void CollectionDB::createTables(bool)
amarok: END__: void CollectionDB::createTables(bool) - Took 0.07s
amarok: BEGIN: void CollectionDB::prepareTempTables()
amarok: END__: void CollectionDB::prepareTempTables() - Took 0.16s
amarok:           [KDE::ProgressBar::ProgressBar(QWidget*, QLabel*)]
amarok:           [ScanController] itemcount event: 23
amarok: END__: virtual void ThreadManager::Thread::run() - Took 2.2s
amarok:           [ThreadManager] Job completed: CurrentTrackJob. Jobs 
pending: 0
amarok:         [CollectionDB] Detected compilation: Elements Beyond - 3:1
amarok:         [MountPointManager] Trying to update 0 tags_labels rows
amarok: END__: virtual bool UrlUpdateJob::doJob() - Took 2.7s
amarok:       [ThreadManager] Job completed: UrlUpdateJob. Jobs pending: 0
amarok: END__: virtual void ThreadManager::Thread::run() - Took 2.7s
amarok: BEGIN: void CollectionDB::copyTempTables()
amarok:       [CollectionDB] [ERROR!] [virtual int 
SqliteConnection::insert(const QString&, const QString&)] sqlite_step 
error.
amarok:       [CollectionDB] [ERROR!] columns dir, deviceid are not unique
amarok:       [CollectionDB] [ERROR!] on insert: INSERT INTO directories 
SELECT * FROM directories_temp;
amarok: END__: void CollectionDB::copyTempTables() - Took 0.41s

I tried fixing that one by manually deleting all (wrong) references to 
that album in the sqlite db. Now what I'm wondering, if the copy fails 
because of duplicate records, could not it remove the old records, so 
they are simply replaced by the new correct ones? That would have 
prevented this error.

Then I moved the album out of the collection directory. I restarted 
Amarok, and move the album to /mnt/Music (root of mountpoint). Nothing 
happened; I also chose Update Collection by hand. Then I moved it to /mnt/
Music/Pearl Jam, and chose again Update Collection, but again nothing 
happened. The log of this session is on 
http://artipc10.vub.ac.be/amarok.log

I do not understand why in the previous test, it correctly detected the 
album move, and now that the db has been fixed, it does not detect it at 
all anymore...


> Also you might want to try
>  amarokcollectionscanner -r "/mnt/Music/Pearl Jam/"

This gives no errors, I see it detects all files without any problem and
reads all tags correctly.

Thanks for your help!

-- 
Frederik Himpe




More information about the Amarok mailing list