Summary: | Amarok crashed with error "refusing to write non-positive urlId to tracks table" | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Martin <martin.ruessler> |
Component: | Collections/Local | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | marcello.tescari, matej, ralf-engels |
Priority: | NOR | Keywords: | regression |
Version: | 2.8-git | ||
Target Milestone: | 2.8 | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/amarok/2e8443bb877579e9fa338f445dbdbfd6d32ec8f9 | Version Fixed In: | 2.9 |
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
Martin
2013-07-17 09:07:36 UTC
This assert was added by Matej, so I'm CCing him. (In reply to comment #0) > I was playing a mp3 file, with amarok updating the collection. The next file > in the playlist was from an album in the amarok database. During the > collection update, amarok forgot somehow large parts of my collection, > including the upcoming album from the playlist. After file change amarok > crashed. Since I was running amarok from the terminal, I can give you the > last output: Hey, the description matches the backtrace quite precisely, it seems that we crash when you update a track from Local Collection when it just disappeared from it. In any case, the assert is right (leaving negative ids in the database would cause even worse chaos than crashing). I'll look into it, but let me investigate something else: > amarok forgot somehow large parts of my collection Was that temporary? If so, what did fix the problem - just updating or did you need to Fully rescan collection? Did you loose metadata like play count or last played time? (assuming you don't write these into files) (In reply to comment #2) > Was that temporary? If so, what did fix the problem - just updating or did > you need to Fully rescan collection? Did you loose metadata like play count > or last played time? (assuming you don't write these into files) Yeah, about that: This is a difficult one. My collection count seems to be rather unstable. Normally I have about 24k items. I just did a full rescan and Amarok showed ~24k (I guess the library was complete). After my triggered scan another automatic scan started and yielded 3452 items after finishing. I have no idea how this bug works (and therefore have not reported anything yet). Starting 'update collection' from the menu resulted in 24k again. A rescan also leads to Amarok not recognizing playlist items (like in the reported case) *even though* I can find them in the collection. Clicking on track details on such a playlist item shows only the title but no other metadata whereas the same track in the collection has all metadata correctly displayed. I have Amarok write metadata into the files. I do not know, however, if this is really buggish behaviour or just my messed up database. I hope this helps a bit. Git commit d1d8a6fd2c81a17a9089e8bb81ddece0c5426904 by Matěj Laitl. Committed on 21/07/2013 at 10:16. Pushed by laitl into branch 'master'. SqlScanResultProcessor: fix stupid data-loss bug caused by my commit ca88c8d3 Commit ca88c8d3 introduced some extra logic and a member variable in order to fix bug 311078. However, I forgot to add the variable into the cleanupMembers() method, which resulted in state leaking from one scanner to another. What happened: 1. User performed full rescan. For every directory in the collection, deleteDeletedTracksAndSubdirs() was called, which essentially inserted all existing directory ids to m_scannedDirectoryIds. 2. All member variables were cleared except m_scannedDirectoryIds, which leaked into the next run. 3. A file was changed, which triggered partial update scan run with only a couple of changed directories. 4. Its deleteDeletedDirectories() method was called, which called deletedDirectories(), which used m_scannedDirectoryIds as a basis, removed just the newly scanned dirs from it and returned all the rest. 5. deleteDeletedDirectories() deleted all but newly scanned directories. 6. strohel feels ashamed. The fix is to simply clear m_scannedDirectoryIds in cleanupMembers(). In addition to fixing bug 322603, this should also minimise changes of reproducing bug 322474 (but not fixing the actual bug) Related: bug 322603 FIXED-IN: 2.8 M +2 -0 ChangeLog M +1 -0 src/core-impl/collections/db/sql/SqlScanResultProcessor.cpp http://commits.kde.org/amarok/d1d8a6fd2c81a17a9089e8bb81ddece0c5426904 Git commit ca017302eb73f88aed9da30c2b2ba0bdcb73e48a by Matěj Laitl. Committed on 21/07/2013 at 13:22. Pushed by laitl into branch 'master'. SqlMeta: check for invalid ids before SqlRegistry asserts on them BUGFIXES: * Prevent hitting an assertion failure if a just-removed track from the Local Collection is edited. FIXED-IN: 2.8 M +2 -0 ChangeLog M +13 -2 src/core-impl/collections/db/sql/SqlMeta.cpp http://commits.kde.org/amarok/ca017302eb73f88aed9da30c2b2ba0bdcb73e48a *** Bug 322942 has been marked as a duplicate of this bug. *** Created attachment 83333 [details]
New crash information added by DrKonqi
amarok (2.8-git) on KDE Platform 4.11.2 using Qt 4.8.4
Sadly, this is not fixed, and quite easy to reproduce:
Try to rename a file using the "Organize Files" option. The file is in the collection, all I tried is to renmae it by changing the default "Arist" filed to "Al bum_Aritst" in the track name.
As soon as one hits enter when the confirmation question comes it crashes.
Reproducible every time, current git v2.8.0-89-g5e472f5
-- Backtrace (Reduced):
#6 0x00007f94c9836f77 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#7 0x00007f94c983a5e8 in __GI_abort () at abort.c:90
[...]
#11 0x00007f94a5a5d72f in TrackTracksTableCommitter::getValues (this=0x7fff4d3a4d00, track=0x977fcb0) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry_p.cpp:270
#12 0x00007f94a5a5bd5c in AbstractTrackTableCommitter::commit (this=0x7fff4d3a4d00, tracks=...) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry_p.cpp:67
#13 0x00007f94a5a522e1 in SqlRegistry::commitDirtyTracks (this=0xee8c60) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry.cpp:815
Reopening. Sorry for the typos. Git commit b0121dbb0d7f72f7f78998e1c075d73d177ba8f1 by Matěj Laitl. Committed on 06/11/2013 at 15:10. Pushed by laitl into branch 'master'. SqlRegistry: fix assert fail in SqlScanResultProcessor by always returning the correct track What happened: 1. User has 1.mp3, copies it as 1.new.mp3 and edits some tags of 1.new.mp3. Both files do *not* have AFT tag embedded. 2. Amarok registers the new file. 3. Users restarts Amarok (needed to reproduce because of internal state) 4. User renames 1.new.mp3 back to 1.mp3 by overwriting it, Amarok catches it 5. Amarok does not associate new 1.mp3 with the old 1.mp3 because it finds previous 1.new.mp3 entry by uid (file hash) instead. 6. Amarok tries to remove entry for the old 1.mp3, but SqlRegistry::getTrack( int urlId ) erroneously returns the new entry 7. SqlScanResultProcessor correctly asserts out, refusing to delete the incorrect entry. The fix is to enhance SqlRegistry::getTrack( int urlId ) to double-check that it indeed returns the correct entry. Related: bug 323156 FIXED-IN: 2.9 BACKPORT M +2 -0 ChangeLog M +24 -10 src/core-impl/collections/db/sql/SqlRegistry.cpp http://commits.kde.org/amarok/b0121dbb0d7f72f7f78998e1c075d73d177ba8f1 (In reply to comment #8) > Reopening. Sorry for the typos. Myriam, I think the assert failure is just a consequence of an earlier problem, the once experienced by Konrad in bug 323156. Please try to reproduce with at least v2.8.0-91-gb0121db and/or with a fresh database (but fresh db technically shouldn't be needed). If the problem persist, I'd need a debugging log (use `amarok --debug --nofork 2>&1 | grep -iC6 sql` to make it shorter) of the first Amarok run where things get "weird", especially important are the first [WARNING]s coming from Sql code. This is with the latest changes, fresh database. Trying to transcode a file to OGG: Thread 1 (Thread 0x7fdf67a387c0 (LWP 19257)): [KCrash Handler] #6 0x00007fdf63098f77 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #7 0x00007fdf6309c5e8 in __GI_abort () at abort.c:90 #8 0x00007fdf63cb8912 in qt_message_output (msgType=msgType@entry=QtFatalMsg, buf=0x5126c88 "ASSERT: \"track->m_urlId > 0 && \"refusing to write non-positive urlId to tracks table, please file a bug\"\" in file /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry_p.cpp, line 2"...) at global/qglobal.cpp:2347 #9 0x00007fdf63cb8c79 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, msg=0x7fdf63e23a80 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7fff755841d8) at global/qglobal.cpp:2393 #10 0x00007fdf63cb9484 in qFatal (msg=<optimized out>) at global/qglobal.cpp:2576 #11 0x00007fdf367f0e6f in TrackTracksTableCommitter::getValues (this=0x7fff75584750, track=0x41b3310) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry_p.cpp:270 #12 0x00007fdf367ef49c in AbstractTrackTableCommitter::commit (this=0x7fff75584750, tracks=...) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry_p.cpp:67 #13 0x00007fdf367e5701 in SqlRegistry::commitDirtyTracks (this=0xa7b1c0) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry.cpp:829 #14 0x00007fdf367f84f2 in Meta::SqlTrack::commitIfInNonBatchUpdate (this=0x41b3310) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlMeta.cpp:1038 #15 0x00007fdf367fac6f in Meta::SqlTrack::endUpdate (this=0x41b3310) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlMeta.cpp:775 #16 0x00007fdf367cd64d in Collections::SqlCollectionLocation::insert (this=<optimized out>, track=..., url=...) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp:274 #17 0x00007fdf367cf356 in Collections::SqlCollectionLocation::slotTransferJobFinished (this=0x466d1f0, job=<optimized out>) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp:449 #18 0x00007fdf367d18cf in Collections::SqlCollectionLocation::qt_static_metacall (_o=0x466d1f0, _c=<optimized out>, _id=<optimized out>, _a=0x7fff755851f0) at /home/myriam/kde/build/amarok/src/core-impl/collections/db/sql/SqlCollectionLocation.moc:145 #19 0x00007fdf63dd6a58 in QMetaObject::activate (sender=sender@entry=0x58404a0, m=m@entry=0x7fdf64856600 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fff755851f0) at kernel/qobject.cpp:3539 #20 0x00007fdf644c60c2 in KJob::result (this=this@entry=0x58404a0, _t1=_t1@entry=0x58404a0) at ./kjob.moc:208 #21 0x00007fdf644c6100 in KJob::emitResult (this=0x58404a0) at ../../kdecore/jobs/kjob.cpp:318 #22 0x00007fdf367d1061 in Collections::TransferJob::slotJobFinished (this=0x58404a0, job=<optimized out>) at /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp:758 #23 0x00007fdf63dd6a58 in QMetaObject::activate (sender=sender@entry=0x50ef490, m=m@entry=0x7fdf64856600 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fff755853c0) at kernel/qobject.cpp:3539 #24 0x00007fdf644c60c2 in KJob::result (this=this@entry=0x50ef490, _t1=_t1@entry=0x50ef490) at ./kjob.moc:208 #25 0x00007fdf644c6100 in KJob::emitResult (this=this@entry=0x50ef490) at ../../kdecore/jobs/kjob.cpp:318 #26 0x00007fdf619ab9ff in KIO::FileCopyJob::slotResult (this=0x50ef490, job=0x43f9650) at ../../kio/kio/job.cpp:2473 #27 0x00007fdf63dd6a58 in QMetaObject::activate (sender=sender@entry=0x43f9650, m=m@entry=0x7fdf64856600 <KJob::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7fff75585530) at kernel/qobject.cpp:3539 #28 0x00007fdf644c60c2 in KJob::result (this=this@entry=0x43f9650, _t1=_t1@entry=0x43f9650) at ./kjob.moc:208 #29 0x00007fdf644c6100 in KJob::emitResult (this=this@entry=0x43f9650) at ../../kdecore/jobs/kjob.cpp:318 #30 0x00007fdf619a7e5a in KIO::SimpleJob::slotFinished (this=0x43f9650) at ../../kio/kio/job.cpp:496 #31 0x00007fdf63dd6a58 in QMetaObject::activate (sender=0x5566b40, m=m@entry=0x7fdf61d51580 <KIO::SlaveInterface::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x0) at kernel/qobject.cpp:3539 #32 0x00007fdf61a45d63 in KIO::SlaveInterface::finished (this=<optimized out>) at ./slaveinterface.moc:185 #33 0x00007fdf61a472a6 in KIO::SlaveInterface::dispatch (this=<optimized out>, _cmd=104, rawdata=...) at ../../kio/kio/slaveinterface.cpp:176 #34 0x00007fdf61a44d9e in KIO::SlaveInterface::dispatch (this=0x5566b40) at ../../kio/kio/slaveinterface.cpp:92 #35 0x00007fdf61a39a06 in KIO::Slave::gotInput (this=0x5566b40) at ../../kio/kio/slave.cpp:344 #36 0x00007fdf63dd6a58 in QMetaObject::activate (sender=0x528db50, m=m@entry=0x7fdf61d4aaa0 <KIO::Connection::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3539 #37 0x00007fdf61975200 in KIO::Connection::readyRead (this=<optimized out>) at ./connection.moc:106 #38 0x00007fdf619758f1 in KIO::ConnectionPrivate::dequeue (this=0x583ade0) at ../../kio/kio/connection.cpp:82 #39 0x00007fdf63ddadce in QObject::event (this=0x528db50, e=<optimized out>) at kernel/qobject.cpp:1194 #40 0x00007fdf64a2edfc in QApplicationPrivate::notify_helper (this=this@entry=0x80f0a0, receiver=receiver@entry=0x528db50, e=e@entry=0x41aca40) at kernel/qapplication.cpp:4567 #41 0x00007fdf64a35470 in QApplication::notify (this=this@entry=0x7fff75586100, receiver=receiver@entry=0x528db50, e=e@entry=0x41aca40) at kernel/qapplication.cpp:4353 #42 0x00007fdf6745ba9a in KApplication::notify (this=0x7fff75586100, receiver=0x528db50, event=0x41aca40) at ../../kdeui/kernel/kapplication.cpp:311 #43 0x00007fdf63dc28bd in QCoreApplication::notifyInternal (this=0x7fff75586100, receiver=receiver@entry=0x528db50, event=event@entry=0x41aca40) at kernel/qcoreapplication.cpp:946 #44 0x00007fdf63dc5e1f in sendEvent (event=0x41aca40, receiver=0x528db50) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #45 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x7151f0) at kernel/qcoreapplication.cpp:1570 #46 0x00007fdf63dc62c3 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1463 #47 0x00007fdf63df0073 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236 #48 postEventSourceDispatch (s=0x80ad40) at kernel/qeventdispatcher_glib.cpp:279 #49 0x00007fdf5bc5f3b6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #50 0x00007fdf5bc5f708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #51 0x00007fdf5bc5f7ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #52 0x00007fdf63defa55 in QEventDispatcherGlib::processEvents (this=0x7f8a60, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #53 0x00007fdf64ad09d6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #54 0x00007fdf63dc15ef in QEventLoop::processEvents (this=this@entry=0x7fff75586080, flags=...) at kernel/qeventloop.cpp:149 #55 0x00007fdf63dc18e5 in QEventLoop::exec (this=this@entry=0x7fff75586080, flags=...) at kernel/qeventloop.cpp:204 #56 0x00007fdf63dc6e5b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218 #57 0x000000000040d331 in main (argc=3, argv=0x7fff75587468) at /home/myriam/kde/src/amarok/src/main.cpp:329 And here is the debug output: amarok: BEGIN: void CollectionTreeView::organizeTracks(const QSet<CollectionTreeItem *> &) const amarok: BEGIN: void Collections::CollectionLocation::prepareMove(Collections::QueryMaker *, Collections::CollectionLocation *) amarok: END__: void Collections::CollectionLocation::prepareMove(Collections::QueryMaker *, Collections::CollectionLocation *) [Took: 0.001s] amarok: END__: void CollectionTreeView::organizeTracks(const QSet<CollectionTreeItem *> &) const [Took: 0.008s] amarok: BEGIN: void Collections::CollectionLocation::queryDone() amarok: [CollectionLocation] we were about to move something, lets proceed amarok: BEGIN: void Collections::CollectionLocation::prepareMove(const Meta::TrackList &, Collections::CollectionLocation *) amarok: BEGIN: void Collections::CollectionLocation::startWorkflow(const Meta::TrackList &, bool) amarok: END__: void Collections::CollectionLocation::startWorkflow(const Meta::TrackList &, bool) [Took: 0.009s] amarok: END__: void Collections::CollectionLocation::prepareMove(const Meta::TrackList &, Collections::CollectionLocation *) [Took: 0.009s] amarok: END__: void Collections::CollectionLocation::queryDone() [Took: 0.01s] amarok: BEGIN: Transcoding::AssistantDialog::AssistantDialog(const QStringList &, bool, Collections::CollectionLocationDelegate::OperationType, const QString &, const Transcoding::Configuration &, QWidget *) QLayout: Attempting to add QLayout "" to QWidget "", which already has a layout QLayout: Attempting to add QLayout "" to Transcoding::PropertySliderWidget "", which already has a layout QLayout: Attempting to add QLayout "" to Transcoding::PropertySliderWidget "", which already has a layout amarok: Created config widget for "FLAC" , element "level" QLayout: Attempting to add QLayout "" to Transcoding::PropertySliderWidget "", which already has a layout QLayout: Attempting to add QLayout "" to Transcoding::PropertySliderWidget "", which already has a layout amarok: Created config widget for "Ogg Vorbis" , element "quality" QLayout: Attempting to add QLayout "" to Transcoding::PropertySliderWidget "", which already has a layout QLayout: Attempting to add QLayout "" to Transcoding::PropertySliderWidget "", which already has a layout amarok: Created config widget for "Windows Media Audio" , element "bitrate" amarok: END__: Transcoding::AssistantDialog::AssistantDialog(const QStringList &, bool, Collections::CollectionLocationDelegate::OperationType, const QString &, const Transcoding::Configuration &, QWidget *) [Took: 0.024s] amarok: BEGIN: virtual void Collections::SqlCollectionLocation::showDestinationDialog(const Meta::TrackList &, bool, const Transcoding::Configuration &) amarok: [SqlCollectionLocation] Path "/media/myriam/Elements2/Podcasts" amarok: [SqlCollectionLocation] used: 341761384448 amarok: [SqlCollectionLocation] total: 489608859648 amarok: [SqlCollectionLocation] Free space 147847475200 amarok: [SqlCollectionLocation] transfersize 3826408 amarok: [SqlCollectionLocation] 147843648792 amarok: [SqlCollectionLocation] Path "/media/myriam/Elements2/Radio" amarok: [SqlCollectionLocation] used: 341761384448 amarok: [SqlCollectionLocation] total: 489608859648 amarok: [SqlCollectionLocation] Free space 147847475200 amarok: [SqlCollectionLocation] transfersize 3826408 amarok: [SqlCollectionLocation] 147843648792 amarok: [SqlCollectionLocation] Path "/media/myriam/MyPass1/myriam/Music" amarok: [SqlCollectionLocation] used: 446407241728 amarok: [SqlCollectionLocation] total: 488171425792 amarok: [SqlCollectionLocation] Free space 41764184064 amarok: [SqlCollectionLocation] transfersize 3826408 amarok: [SqlCollectionLocation] 41760357656 amarok: st3.1 amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 0 items: 0 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: void FilenameLayoutWidget::inferScheme(const QString &) amarok: infering scheme: "" amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 0 items: 0 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: END__: void FilenameLayoutWidget::inferScheme(const QString &) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 0 items: 0 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: void FilenameLayoutWidget::inferScheme(const QString &) amarok: infering scheme: "" amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 0 items: 0 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: END__: void FilenameLayoutWidget::inferScheme(const QString &) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 0 items: 0 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: void FilenameLayoutWidget::populateFormatList() amarok: --- got preset for "OrganizeCollectionDialog" ("Default#DELIM#%artist%/%album%/%track%_-_%title%#DELIM#selected") amarok: BEGIN: void FilenameLayoutWidget::inferScheme(const QString &) amarok: infering scheme: "%artist%/%album%/%track%_-_%title%" amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 0 items: 0 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 1 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 2 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 3 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 4 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 5 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 6 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 7 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 8 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 9 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: END__: void FilenameLayoutWidget::inferScheme(const QString &) [Took: 0.002s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 9 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: END__: void FilenameLayoutWidget::populateFormatList() [Took: 0.002s] amarok: BEGIN: void OrganizeCollectionDialog::slotUpdatePreview() amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 9 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 9 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: END__: void OrganizeCollectionDialog::slotUpdatePreview() [Took: 0.003s] amarok: END__: virtual void Collections::SqlCollectionLocation::showDestinationDialog(const Meta::TrackList &, bool, const Transcoding::Configuration &) [Took: 0.17s] X Error: BadWindow (invalid Window parameter) 3 Major opcode: 20 (X_GetProperty) Resource id: 0x56003ff amarok: BEGIN: void OrganizeCollectionDialog::slotUpdatePreview() amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 8 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 8 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: END__: void OrganizeCollectionDialog::slotUpdatePreview() [Took: 0.001s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 8 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: void TokenDropTarget::deleteEmptyRows() amarok: END__: void TokenDropTarget::deleteEmptyRows() [Took: 0s] amarok: BEGIN: void OrganizeCollectionDialog::slotUpdatePreview() amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 7 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 7 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: END__: void OrganizeCollectionDialog::slotUpdatePreview() [Took: 0.001s] amarok: BEGIN: QList<Token *> TokenDropTarget::tokensAtRow(int) amarok: Row: 1 items: 7 amarok: END__: QList<Token *> TokenDropTarget::tokensAtRow(int) [Took: 0s] amarok: BEGIN: void TokenDropTarget::deleteEmptyRows() amarok: END__: void TokenDropTarget::deleteEmptyRows() [Took: 0s] amarok: BEGIN: void Collections::SqlCollectionLocation::slotDialogAccepted() "PulseSupport(2): Found PulseAudio stream index 1762 for Phonon Output Stream {cdd8fd71-65df-4230-b3e7-24f067240ad7}" "PulseSupport(2): Found PulseAudio stream index 1762 for Phonon Output Stream {cdd8fd71-65df-4230-b3e7-24f067240ad7}" "PulseSupport(2): Found PulseAudio stream index 1762 for Phonon Output Stream {cdd8fd71-65df-4230-b3e7-24f067240ad7}" amarok(19257)/kdeui (KNotification) KNotificationManager::notificationClosed: 20440 amarok: BEGIN: virtual void Collections::CollectionLocation::getKIOCopyableUrls(const Meta::TrackList &) amarok: [CollectionLocation] adding url KUrl("file:///media/myriam/MyPass1/myriam/Music/Classical/Concerts/Meine Geliebte Klassik/CD2/10 - Bizet - Carmen-Suite No. 2 - Danse poème.ogg") amarok: BEGIN: void Collections::CollectionLocation::slotStartCopy(const QMap<Meta::TrackPtr, KUrl> &, const Transcoding::Configuration &) amarok: BEGIN: virtual void Collections::SqlCollectionLocation::copyUrlsToCollection(const QMap<Meta::TrackPtr, KUrl> &, const Transcoding::Configuration &) amarok: [SqlCollectionLocation] TransferJob::TransferJob amarok: BEGIN: virtual void Collections::TransferJob::start() amarok: END__: virtual void Collections::TransferJob::start() [Took: 0s] amarok: END__: virtual void Collections::SqlCollectionLocation::copyUrlsToCollection(const QMap<Meta::TrackPtr, KUrl> &, const Transcoding::Configuration &) [Took: 0.001s] amarok: END__: void Collections::CollectionLocation::slotStartCopy(const QMap<Meta::TrackPtr, KUrl> &, const Transcoding::Configuration &) [Took: 0.001s] amarok: END__: virtual void Collections::CollectionLocation::getKIOCopyableUrls(const Meta::TrackList &) [Took: 0.001s] amarok: END__: void Collections::SqlCollectionLocation::slotDialogAccepted() [DELAY Took (quite long) 9.5s] amarok: BEGIN: void Collections::TransferJob::doWork() amarok: BEGIN: bool Collections::SqlCollectionLocation::startNextJob(const Transcoding::Configuration) amarok: [SqlCollectionLocation] copying from KUrl("file:///media/myriam/MyPass1/myriam/Music/Classical/Concerts/Meine Geliebte Klassik/CD2/10 - Bizet - Carmen-Suite No. 2 - Danse poème.ogg") to KUrl("file:///media/myriam/Elements2/Podcasts/Meine Geliebte Klassik/10-Carmen-Suite No. 2.ogg") amarok(19257)/kdecore (K*TimeZone*) KSystemTimeZonesPrivate::instance: instance(): ... initialised amarok(19257)/kdecore (K*TimeZone*) KSystemTimeZonesPrivate::readConfig: readConfig(): local zone= "Europe/Berlin" amarok(19257)/kdecore (K*TimeZone*) KSystemTimeZonesPrivate::readZoneTab: readZoneTab( "/usr/share/zoneinfo/zone.tab" ) amarok: [SqlCollectionLocation] moving! amarok: END__: bool Collections::SqlCollectionLocation::startNextJob(const Transcoding::Configuration) [Took: 0.059s] amarok: END__: void Collections::TransferJob::doWork() [Took: 0.059s] X Error: BadWindow (invalid Window parameter) 3 Major opcode: 20 (X_GetProperty) Resource id: 0x5600449 amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x4aaf430) amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x4b56cb0) amarok(19257)/kio (Slave) KIO::Slave::createSlave: createSlave "file" for KUrl("file:///media/myriam/MyPass1/myriam/Music/Classical/Concerts/Meine Geliebte Klassik/CD2/10 - Bizet - Carmen-Suite No. 2 - Danse poème.ogg") amarok(19257)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on "local:/tmp/ksocket-myriam/amarokg19257.slave-socket" amarok: [AbstractDirectoryWatcher] addDirToList for "/media/myriam/Elements2/Podcasts/Meine Geliebte Klassik" amarok(19257)/kio (Slave) KIO::Slave::createSlave: createSlave "file" for KUrl("file:///media/myriam/MyPass1/myriam/Music/Classical/Concerts/Meine Geliebte Klassik/CD2/.10 - Bizet - Carmen-Suite No. 2 - Danse poème.mood") amarok(19257)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on "local:/tmp/ksocket-myriam/amarokE19257.slave-socket" amarok(19257)/kio (KIOJob) KIO::SlaveInterface::dispatch: error 108 "rename" amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::SimpleJob(0x4aaf430) KIO::Slave(0x488a5c0) amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x947d060) amarok(19257)/kio (KIOJob) KIO::SlaveInterface::dispatch: error 108 "rename" amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::SimpleJob(0x4b56cb0) KIO::Slave(0x5566b40) amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x4314ea0) amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::DirectCopyJob(0x4314ea0) KIO::Slave(0x5566b40) amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x43f9650) amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::DirectCopyJob(0x947d060) KIO::Slave(0x488a5c0) amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::doJob: KIO::SimpleJob(0x5008b20) amarok: [AbstractDirectoryWatcher] addDirToList for "/media/myriam/MyPass1/myriam/Music/Classical/Concerts/Meine Geliebte Klassik/CD2" amarok: [AbstractDirectoryWatcher] addDirToList for "/media/myriam/MyPass1/myriam/Music/Classical/Concerts/Meine Geliebte Klassik/CD2" amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::SimpleJob(0x5008b20) KIO::Slave(0x488a5c0) amarok: BEGIN: void Collections::SqlCollectionLocation::slotJobFinished(KJob *) amarok: END__: void Collections::SqlCollectionLocation::slotJobFinished(KJob *) [Took: 0s] amarok: BEGIN: void Collections::TransferJob::slotJobFinished(KJob *) amarok: [SqlCollectionLocation] processed 1 totalAmount 1 amarok: BEGIN: bool Collections::SqlCollectionLocation::startNextJob(const Transcoding::Configuration) amarok: END__: bool Collections::SqlCollectionLocation::startNextJob(const Transcoding::Configuration) [Took: 0s] amarok: [SqlCollectionLocation] sources empty amarok: [SqlCollectionLocation] have subjobs amarok: END__: void Collections::TransferJob::slotJobFinished(KJob *) [Took: 0s] amarok(19257)/kio (Scheduler) KIO::SchedulerPrivate::jobFinished: KIO::SimpleJob(0x43f9650) KIO::Slave(0x5566b40) amarok: BEGIN: void Collections::TransferJob::slotJobFinished(KJob *) amarok: [SqlCollectionLocation] processed 2 totalAmount 1 amarok: BEGIN: bool Collections::SqlCollectionLocation::startNextJob(const Transcoding::Configuration) amarok: END__: bool Collections::SqlCollectionLocation::startNextJob(const Transcoding::Configuration) [Took: 0s] amarok: [SqlCollectionLocation] sources empty amarok: BEGIN: void Collections::SqlCollectionLocation::slotTransferJobFinished(KJob *) amarok: [SqlCollectionLocation] SqlCollectionLocation::insert from: KUrl("file:///media/myriam/MyPass1/myriam/Music/Classical/Concerts/Meine Geliebte Klassik/CD2/10 - Bizet - Carmen-Suite No. 2 - Danse poème.ogg") to "/media/myriam/Elements2/Podcasts/Meine Geliebte Klassik/10-Carmen-Suite No. 2.ogg" amarok: [SqlCollectionLocation] File on disk, insert to dbase "Carmen-Suite No. 2" uid: "amarok-sqltrackuid://bb848b39fbc3493198eed287b8890103" amarok: [SqlRegistry] SqlRegistry::getDirectory(): new directory "/media/myriam/Elements2/Podcasts/Meine Geliebte Klassik" amarok: [ERROR__] [MySqlStorage] "GREPME MySQLe query failed! (1062) Duplicate entry 'amarok-sqltrackuid://bb848b39fbc3493198eed287b8890103' for key 'uniqueid' on INSERT INTO urls (deviceid,rpath,directory,uniqueid) VALUES (1,'./Podcasts/Meine Geliebte Klassik/10-Carmen-Suite No. 2.ogg',1487,'amarok-sqltrackuid://bb848b39fbc3493198eed287b8890103');" amarok: [WARNING] [SqlRegistryP] Insert failed. ASSERT: "track->m_urlId > 0 && "refusing to write non-positive urlId to tracks table, please file a bug"" in file /home/myriam/kde/src/amarok/src/core-impl/collections/db/sql/SqlRegistry_p.cpp, line 270 KCrash: Application 'amarok' crashing... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit sock_file=/home/myriam/.kde/socket-Stupsibuntu/kdeinit4__0 [1]+ Angehalten amarok --debug --nofork myriam@Stupsibuntu:~/kde/build/amarok$QSocketNotifier: Invalid socket 44 and type 'Read', disabling... QSocketNotifier: Invalid socket 61 and type 'Read', disabling... Git commit 2e8443bb877579e9fa338f445dbdbfd6d32ec8f9 by Matěj Laitl. Committed on 07/11/2013 at 22:30. Pushed by laitl into branch 'master'. SqlCollectionLocation: correctly compute uid, prevent later assert failures FIXED-IN: 2.9 BACKPORT M +2 -0 ChangeLog M +1 -0 src/core-impl/collections/db/sql/SqlCollectionLocation.cpp http://commits.kde.org/amarok/2e8443bb877579e9fa338f445dbdbfd6d32ec8f9 |