Bug 231075

Summary: Amarok 2.3.0 ubuntu 9.10 consistently crashes when importing new music library
Product: [Frameworks and Libraries] taglib Reporter: sokocj
Component: generalAssignee: Scott Wheeler <wheeler>
Status: RESOLVED FIXED    
Severity: crash CC: kde, lalinsky, mitchell, paneves
Priority: NOR    
Version: 1.6.2   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description sokocj 2010-03-17 10:28:56 UTC
Version:            (using KDE 4.4.1)
OS:                Linux
Installed from:    Ubuntu Packages

I am a relatively new user to linux.  Amarok crashes when using mySQL as the backend database.  I have a large music collection with approx 40,000+ songs.  When updating under Amarok 2.3.0 the system becomes unresponsive consistently @53% completion, Amarok locks up and the only way to move forward is to forcibly kill Amarok app and restart.  The process running at the time appears to be , upon restarting only half the library has been imported.  I am able to return to Amarok with half the libary, and retry a full rescan of the collection.  The collection resides on an external NAS box connected using NFS.  This problem has presented since v2 arrived.  Prior to starting Amarok, mySQL database was setup such that 'amarok' database was dropped, then recreated using appropriate permissions for amarok user.  Version of mySQL in use is 5.1.37.  Latest updates to Amarok, mySQL have been applied to Ubuntu 9.10 64 bit.

The older Amarok v1.4 has no issues importing the collection.  

Expected behaviour is that the music library fully imports without crashing, music files are a mixture of mp3, flac, aac, ogg.

Debug output shown below.  Amarok hangs whilst amarokcollectionscanner is running, it ends up as a zombie process.

No additional plugins loaded, Amarok newly installed with attempt to import music collection.

----
Debug output:
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://0d7ec39c10b363f9700051d0eda0f216"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/01 Country Home.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/01 - Country Home.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://20f5aef3a48d9c2cf6a31a1ae78b3701"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/02 White Line.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/02 - White Line.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://d2e642408d6b9bba9f3cceef0a62a198"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/03 F_!#In' Up.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/03 - F_!#In' Up.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://64f557fc9800b22edeb1806181b7caaf"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/04 Over And Over.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/04 - Over And Over.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://c7693128827f76170130723556def071"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/05 Love To Burn.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/05 - Love To Burn.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://18e866be8af41e1f1252ce126e941884"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/06 Farmer John.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/06 - Farmer John.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://5dee60b6cfdb6e14454689fa813856ea"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/07 Mansion On The Hill.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/07 - Mansion On The Hill.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://683d3a4ecea836ec2b6c1251109b058f"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/08 Days That Used To Be.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/08 - Days That Used To Be.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://339766e2847ca289bed33536d17593c4"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/09 Love And Only Love.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/09 - Love And Only Love.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://0ff2a140874efe09cdc7c644d014d7e5"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/10 Mother Earth (Natural Anthem) [Li.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/10 - Mother Earth (Natural Anthem) [Live].m4a" 
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size

This last line keeps repeating....
Comment 1 Myriam Schweingruber 2010-03-17 11:11:16 UTC
Sorry, but we need a proper backtrace, as generated by Dr. Konqi. If you can reproduce this bug, please check here on how to get a valid backtrace:

http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports

Since you are using Kubuntu, you will need amarok-dbg and phonon-dbg at least, ideally you should also have kdelibs5-dbg, libqt4-dbg and  libglib2.0-0-dbg. That should cover most of the crashes.

Also, please start Amarok in a konsole with 'amarok -d --nofork'

If you have experience problems "sinc Amarok v2 arrived" as you say, why do you only report this more than a whole year later? Please stay objective and don't compare with Amarok 1.4, this is a complete rewrite with a totally different codebase.

FWIW, I haven't seen a crash of the database scanner here in ages, using Amarok 2.3-git on Kubuntu 9.10 using KDE SC 4.4.1
Comment 2 sokocj 2010-03-17 13:45:23 UTC
Backtrace from 'gdb amarokcollectionscanner <pid>'

#0  0x00007ff9094b6b00 in __write_nocancel () from /lib/libc.so.6
#1  0x00007ff9094568c3 in _IO_new_file_write (f=0x7ff90974e860, data=0x1d21918, n=61) at fileops.c:1275
#2  0x00007ff90945679d in new_do_write (f=0x7ff90974e860, data=<value optimized out>, n=61) at fileops.c:529
#3  _IO_new_file_xsputn (f=0x7ff90974e860, data=<value optimized out>, n=61) at fileops.c:1369
#4  0x00007ff90944c86d in _IO_fwrite (buf=0x1d21918, size=1, count=61, fp=0x7ff90974e860) at iofwrite.c:45
#5  0x00007ff909c8c815 in std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long) () from /usr/lib/libstdc++.so.6
#6  0x00007ff90a15ae1b in operator<<(std::ostream&, TagLib::String const&) () from /usr/lib/libtag.so.1
#7  0x00007ff90a16078f in ?? () from /usr/lib/libtag.so.1
#8  0x00007ff90a15e8bf in ?? () from /usr/lib/libtag.so.1
#9  0x00007ff90a16938a in ?? () from /usr/lib/libtag.so.1
#10 0x00007ff90a1694f8 in ?? () from /usr/lib/libtag.so.1
#11 0x00007ff90a1694f8 in ?? () from /usr/lib/libtag.so.1
#12 0x00007ff90a1694f8 in ?? () from /usr/lib/libtag.so.1
#13 0x00007ff90a1694f8 in ?? () from /usr/lib/libtag.so.1
#14 0x00007ff90a169630 in ?? () from /usr/lib/libtag.so.1
#15 0x00007ff90a1686f0 in TagLib::MP4::File::read(bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#16 0x00007ff90a168892 in TagLib::MP4::File::File(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#17 0x0000000000425461 in MP4FileTypeResolver::createFile (this=<value optimized out>, 
    fileName=0x180ab38 "/media/fs2/mp3s/Nina Simone/(2000) The Essential Nina Simone/14 - See Line Woman.m4a", readProperties=61, propertiesStyle=TagLib::AudioProperties::Fast)
    at /build/buildd/amarok-2.3.0/shared/taglib_filetype_resolvers/mp4filetyperesolver.cpp:36
#18 0x00007ff90a179693 in TagLib::FileRef::create(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#19 0x00007ff90a17a08c in TagLib::FileRef::FileRef(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/libtag.so.1
#20 0x000000000040db9b in CollectionScanner::readTags (this=<value optimized out>, path=<value optimized out>, readStyle=TagLib::AudioProperties::Fast)
    at /build/buildd/amarok-2.3.0/utilities/collectionscanner/CollectionScanner.cpp:563
#21 0x00000000004157bb in CollectionScanner::scanFiles (this=<value optimized out>, entries=<value optimized out>)
    at /build/buildd/amarok-2.3.0/utilities/collectionscanner/CollectionScanner.cpp:460
#22 0x0000000000418829 in CollectionScanner::doJob (this=0x7fff622887e0) at /build/buildd/amarok-2.3.0/utilities/collectionscanner/CollectionScanner.cpp:298
#23 0x00000000004196e0 in CollectionScanner::qt_metacall (this=0x7fff622887e0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=<value optimized out>)
    at /build/buildd/amarok-2.3.0/obj-x86_64-linux-gnu/utilities/collectionscanner/CollectionScanner.moc:72
#24 0x00007ff90a9ddc0f in QMetaObject::activate (sender=0x6716f0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3293
#25 0x00007ff90a9e53ff in QSingleShotTimer::timerEvent (this=0x6716f0) at kernel/qtimer.cpp:308
#26 0x00007ff90a9da863 in QObject::event (this=0x6716f0, e=0x7fff62288510) at kernel/qobject.cpp:1212
#27 0x00007ff90a9cae0c in QCoreApplication::notifyInternal (this=0x7fff622887e0, receiver=0x6716f0, event=0x7fff62288510) at kernel/qcoreapplication.cpp:704
#28 0x00007ff90a9f7a62 in QCoreApplication::sendEvent (this=0x668020) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#29 QTimerInfoList::activateTimers (this=0x668020) at kernel/qeventdispatcher_unix.cpp:603
#30 0x00007ff90a9f4644 in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:184
#31 0x00007ff908715bce in g_main_dispatch (context=0x666d20) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:1960
#32 IA__g_main_context_dispatch (context=0x666d20) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2513
#33 0x00007ff908719598 in g_main_context_iterate (context=0x666d20, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>)
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2591
#34 0x00007ff9087196c0 in IA__g_main_context_iteration (context=0x666d20, may_block=1) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2654
#35 0x00007ff90a9f4333 in QEventDispatcherGlib::processEvents (this=0x6644f0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#36 0x00007ff90a9c9732 in QEventLoop::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:149
#37 0x00007ff90a9c9b0c in QEventLoop::exec (this=0x7fff62288780, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:201
#38 0x00007ff90a9cd84b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#39 0x000000000040d58f in main (argc=8, argv=<value optimized out>) at /build/buildd/amarok-2.3.0/utilities/collectionscanner/CollectionScanner.cpp:81
-----------------

backtrace from 'gdb amarok <pid>

#0  0x00007f1c38f8b3c3 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=37801) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f1c3249837c in g_main_context_poll (context=0xf45c00, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>)
    at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2904
#2  g_main_context_iterate (context=0xf45c00, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2586
#3  0x00007f1c324986c0 in IA__g_main_context_iteration (context=0xf45c00, may_block=1) at /build/buildd/glib2.0-2.22.3/glib/gmain.c:2654
#4  0x00007f1c398e5333 in QEventDispatcherGlib::processEvents (this=0xdfa0d0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#5  0x00007f1c3a2e6f0e in QGuiEventDispatcherGlib::processEvents (this=0x221fd60, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#6  0x00007f1c398ba732 in QEventLoop::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:149
#7  0x00007f1c398bab0c in QEventLoop::exec (this=0x7fff798857f0, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece.
) at kernel/qeventloop.cpp:201
#8  0x00007f1c398be84b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#9  0x0000000000408752 in main (argc=3, argv=0x7fff798877c8) at /build/buildd/amarok-2.3.0/src/main.cpp:237
Current language:  auto
The current source language is "auto; currently c".

Hope this helps.  Happy to rerun to provide more info.  At the point I have captured backtraces amarok is unresponsive, the amarok window does not update keeps screen updates from old moves, the application waits for a good 20 mins before it disappears, there is no Dr. Konqi.  The error that appears in the terminal window is as follows:

TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
Comment 3 Myriam Schweingruber 2010-03-17 14:19:08 UTC
not really, why don't you just use the command I gave you, namely start amarok in a konsole with that exact line:

amarok -d --nofork
Comment 4 Jeff Mitchell 2010-03-17 14:43:18 UTC
This is probably a bug in TagLib, not Amarok, but let's dig down a bit -- if you run amarokcollectionscanner on the command line (with -r for recursion) on your folders, does it finish successfully or does it crash?

(BTW, as you can see in your debug log, you have some duplicate files :-) )
Comment 5 sokocj 2010-03-19 21:49:33 UTC
The output first provided is the same as what command gives below.  Yes there are some duplicates :-)

output from 'amarok -d --nofork


amarok:    [WARNING!] DEPRECATED:  bool PlaylistManager::import(const QString&) 

amarok:   BEGIN: bool PlaylistManager::import(const QString&) 
amarok:     BEGIN: virtual bool PlaylistFileProvider::import(const KUrl&) 
amarok:        Playlist  "/media/fs2/mp3s/Ministry of Sound/Ministry Of Sound - 2008 Chillout 1991-2008/Chilled 1991-2008 Disc 3 mp3/- Ministry Of Sound - Chilled 1991-2008 Disc 3.m3u"  was already imported 
amarok:     END__: virtual bool PlaylistFileProvider::import(const KUrl&) - Took 0.00014s 
amarok:   END__: bool PlaylistManager::import(const QString&) - Took 0.00021s 
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
amarok:   BEGIN: void ScanManager::startIncrementalScan(const QString&) 
amarok:      scanner already running 
amarok:   END__: void ScanManager::startIncrementalScan(const QString&) - Took 0.00011s 
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: A frame of unsupported or unknown type 'CM1' has been discarded
TagLib: A frame of unsupported or unknown type 'CM1' has been discarded
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://b9eb4e46866e7c6674de130117472eff"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Morrissey/Morrissey/1990 Bona Drag/9 - Everyday Is Like Sunday.mp3" , original file is at  "/media/fs2/mp3s/Morrissey/Morrissey/1988 Viva Hate/03-Everyday Is Like Sunday.mp3" 
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://84dd4e10fa8e2a97e67478fcd4475908"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Morrissey/Morrissey/Concerts/Welcome to the West End/16-We'll Let You Know (live).mp3" , original file is at  "/media/fs2/mp3s/Morrissey/Morrissey/1992 Your Arsenal/22 - We'll Let You Know.mp3" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://3c2286b0156fcd048c4be51a086179ee"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Morrissey/Morrissey/Concerts/Welcome to the West End/18-Boxers (live).mp3" , original file is at  "/media/fs2/mp3s/Morrissey/Morrissey/1994 Vauxhall and I/20-Boxers (live).mp3" 
TagLib: A picture frame must contain at least 5 bytes.
TagLib: A picture frame must contain at least 5 bytes.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
amarok:    [WARNING!] DEPRECATED:  bool PlaylistManager::import(const QString&) 

amarok:   BEGIN: bool PlaylistManager::import(const QString&) 
amarok:     BEGIN: virtual bool PlaylistFileProvider::import(const KUrl&) 
amarok:        Playlist  "/media/fs2/mp3s/Muse/(2009) The Resistance/Muse - The resistance.m3u"  was already imported 
amarok:     END__: virtual bool PlaylistFileProvider::import(const KUrl&) - Took 0.00012s 
amarok:   END__: bool PlaylistManager::import(const QString&) - Took 0.00019s 
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
TagLib: ID3v2.4 no longer supports the frame type TSIZ.  It will be discarded from the tag.
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://0d7ec39c10b363f9700051d0eda0f216"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/01 Country Home.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/01 - Country Home.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://20f5aef3a48d9c2cf6a31a1ae78b3701"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/02 White Line.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/02 - White Line.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://d2e642408d6b9bba9f3cceef0a62a198"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/03 F_!#In' Up.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/03 - F_!#In' Up.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://64f557fc9800b22edeb1806181b7caaf"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/04 Over And Over.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/04 - Over And Over.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://c7693128827f76170130723556def071"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/05 Love To Burn.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/05 - Love To Burn.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://18e866be8af41e1f1252ce126e941884"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/06 Farmer John.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/06 - Farmer John.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://5dee60b6cfdb6e14454689fa813856ea"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/07 Mansion On The Hill.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/07 - Mansion On The Hill.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://683d3a4ecea836ec2b6c1251109b058f"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/08 Days That Used To Be.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/08 - Days That Used To Be.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://339766e2847ca289bed33536d17593c4"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/09 Love And Only Love.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/09 - Love And Only Love.m4a" 
amarok:    Skipping file with uniqueid  "amarok-sqltrackuid://0ff2a140874efe09cdc7c644d014d7e5"  as it was already seen this scan, file is at  "/media/fs2/mp3s/Neil Young & Crazy Horse/Ragged Glory/10 Mother Earth (Natural Anthem) [Li.m4a" , original file is at  "/media/fs2/mp3s/Neil Young/(1990) Ragged Glory/10 - Mother Earth (Natural Anthem) [Live].m4a" 
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size

This error keeps repeating indefinitely, amarok is completely unresponsive, when left for 4 hours it never comes back.  The error above is as far as it gets.

---
Trying 'amarokcollectionscanner -r' results as follows:

<tags title="Ain't No Use" compilation="checkforvarious" bitrate="0" uniqueid="amarok-sqltrackuid://5dd155fd417226932e7a4c5dca6e01c4" filetype="3" track="12" artist="Nina Simone" path="/media/fs2/mp3s/Nina Simone/(2000) The Essential Nina Simone/12 - Ain't No Use.m4a" filesize="17981887" length="164000" samplerate="0" album="The Essential Nina Simone" comment="EAC FLAC -8" genre="Metal" year="2000" audioproperties="true"/>

<tags title="Mississippi Goddam" compilation="checkforvarious" bitrate="807" uniqueid="amarok-sqltrackuid://e5d6f8a82daa15caf036c062a36af8d5" filetype="2" track="13" artist="Nina Simone" path="/media/fs2/mp3s/Nina Simone/(2000) The Essential Nina Simone/13 - Mississippi Goddam.flac" filesize="28382037" length="281000" samplerate="44100" album="The Essential Nina Simone" comment="EAC FLAC -8" genre="Jazz" year="2000" audioproperties="true"/>

<tags title="Mississippi Goddam" compilation="checkforvarious" bitrate="0" uniqueid="amarok-sqltrackuid://951972545b752df7923eb856ad265230" filetype="3" track="13" artist="Nina Simone" path="/media/fs2/mp3s/Nina Simone/(2000) The Essential Nina Simone/13 - Mississippi Goddam.m4a" filesize="29099454" length="281000" samplerate="0" album="The Essential Nina Simone" comment="EAC FLAC -8" genre="Metal" year="2000" audioproperties="true"/>

<tags title="See Line Woman" compilation="checkforvarious" bitrate="790" uniqueid="amarok-sqltrackuid://d92d72adaf03a2e03aea8748854e49a9" filetype="2" track="14" artist="Nina Simone" path="/media/fs2/mp3s/Nina Simone/(2000) The Essential Nina Simone/14 - See Line Woman.flac" filesize="22347067" length="226000" samplerate="44100" album="The Essential Nina Simone" comment="EAC FLAC -8" genre="Jazz" year="2000" audioproperties="true"/>

TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0
TagLib: MP4: Invalid atom size
TagLib: ByteVectorMirror::toNumber<T>() -- data is empty, returning 0

...keeps repeating for hours++++ :-)  endless loop.
i will try moving directory .../nina simone out of path

thx
Comment 6 Jeff Mitchell 2010-03-19 22:16:45 UTC
Please, actually read what I wrote in my comment above.
Comment 7 Sven Krohlas 2010-04-07 22:03:35 UTC
@reporter: any news on this?
Comment 8 Pedro Neves 2010-04-14 21:26:36 UTC
Hi:

I don't know if it's the same problem, but when I run "amarokcollectionscanner -r"
it crashes when scanning one/some of my folders, and I get several "Taglib: String::prepare() - Unicode conversion error" messages...

I've tried to rename the folders and changing the files encoding to utf8 (using convmv) without success. I've then removed the offending folders, and the collection scanner works properly.

I have another machine on which I have amarok installed and on that computer, the collection scanner works properly, even with all the folders.

I've then compared the differences in the installed packages that are related to amarok (I'm using Debian) and I've found several diferences (not in amarok, but with some of its dependencies, as I'm using KDE 4.4.2 on one machine and 4.4.1 on another).

Despite these differences in KDE versions, the versions of libtag1c2a (the package that provides TagLib Audio Meta-Data Library) differ: one is 1.6.2-1 and the other is 1.6.1-1

I might be wrong, but this suggests a bug in libtag and not in amarok...

Hope this helps


Pedro
Comment 9 Jeff Mitchell 2010-04-14 22:06:21 UTC
Yes -- but you didn't say which one it works and which one it doesn't  :-)

If it crashes with taglib 1.6.1 and not with taglib 1.6.2 then that's fine -- a bug got fixed in the normal way.

If it's the other way around it's a regression in taglib and that's a big problem. Please let me know ASAP; taglib 1.6.3 is going to be released soon and if there's a regression it should be sorted before then.
Comment 10 Pedro Neves 2010-04-15 00:12:27 UTC
On 2010-04-14 21:06, Jeff Mitchell wrote:
> --- Comment #9 from Jeff Mitchell<mitchell kde org>   2010-04-14 22:06:21 ---
> Yes -- but you didn't say which one it works and which one it doesn't  :-)
>    
My bad... :-(

It crashes with taglib 1.6.2 and not with 1.6.1 ...


Sorry for the confusion...

Cheers:

Pedro
Comment 11 Jeff Mitchell 2010-04-15 02:16:07 UTC
Pedro, please make the file available for testing so it can be debugged.

Lukas, he's reporting what appears to be a regression in 1.6.2; hopefully this can be fixed before 1.6.3 is released.
Comment 12 Lukáš Lalinský 2010-04-15 07:55:17 UTC
I'll really need the problematic file or at least a good description of the problem.

The only issue I see from the error messages is the infinite loop on a broken mp4 file, but I believe that was fixed in 1.6.1 and I don't see TagLib version mentioned here.

Then there is an unrelated problem with a crash, but to be sure about that one I'll need the file. Can you please send it to me (lalinsky@gmail.com)? The first few kB should be enough if it's MP3, otherwise I'll probably need the whole file.
Comment 13 Jeff Mitchell 2010-04-15 16:52:03 UTC
Lukas,

The original reporter seems to have abandoned the post so you can ignore that. Comments #8 through present are what is relevant. The poster says that his file was fine with taglib 1.6.1 and crashes with 1.6.2.

Pedro, do get that file to Lukas please...
Comment 14 Pedro Neves 2010-04-15 18:39:02 UTC
Hi:

I didn't mentioned any specific file causing problems. I mentioned a set 
of folders, containing around 165 files (mostly mp3 files and maybe some 
CD covers). In order to help, I need to get more info about what caused 
the crash. I've re-scanned the problematic folders using taglib 1.6.1 
without any problems. I've sent the amarokcollectionscanner output to 
Lukas, but I don't think it helped.

When I tried to scan these folders using taglib 1.6.2 it crashes and the 
only output I can see are the paths of the files being scanned - there's 
no other errors or messages. Lukas suggested that I could compile taglib 
to enable more debug, but I think you also got that message.

I can try to recompile it according to what Lukas suggested, but only as 
a last resort. I can also try to narrow down the problem by scanning 
folder by folder until I find the culprit... Maybe then I can find a 
problematic file?

I'm open to other suggestions...

Best

Pedro
Comment 15 Jeff Mitchell 2010-04-15 18:58:33 UTC
Pedro,

See my reply to your private email to Lukas/me.
Comment 16 Jeff Mitchell 2010-04-15 18:59:24 UTC
Never mind -- my mistake, I forgot to CC you. Here's the text:

Pedro,

You say that if you run amarokcollectionscanner inside the offending
folder, it crashes.

Can you bisect the files in that folder? So, move half of them to
another directory, and run amarokcollectionscanner on each. Assuming
it's only one of your files causing the problem, one of the folders
should crash, and the other should not. So take the files in the folder
that didn't crash, and move them to a third "known good" folder. Then
bisect your files again and repeat the process.

It should only take a few iterations to find the problematic file...
Comment 17 Scott Wheeler 2010-04-15 19:11:59 UTC
Alternatively, I'll assume since you're already building on 1.6.2 that you're building from source.  You can use the tagreader executable from taglib/examples to find it without moving files:

find . -name \*.mp3 -print0 | xargs -0 tagreader
Comment 18 Pedro Neves 2010-04-15 20:13:23 UTC
Ok:

I have more news:

I've sorted a few folders out of the way (they gave no problems when 
scanned) but I still have some more to test. I also had 3 files on the 
root folder, which I moved to a separate one. When I ran 
amarokcollectionscanner on this new folder, it crashed with the 
following message:

paneves@Omar:~$ amarokcollectionscanner -r /home/paneves/media/Moby/testes/
<?xml version="1.0" encoding="UTF-8" ?><scanner><folder 
path="/home/paneves/media/Moby/testes/"/>

<itemcount count="3"/>

Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

terminate called after throwing an instance of 'std::bad_alloc'
   what():  std::bad_alloc
Aborted


Does this help you guys? I'll keep on testing and I'l get back to you soon.

Cheers:

Pedro
Comment 19 Jeff Mitchell 2010-04-15 20:50:02 UTC
No...what will help is figuring out the file(s) that cause the crash(es) and making them available for testing.  :-)
Comment 20 Lukáš Lalinský 2010-04-15 21:01:01 UTC
I already have the file. It's a problem in ID3v2 APIC frame parsing. I can confirm that it works in 1.6.1, but in 1.6.2.
Comment 21 Lukáš Lalinský 2010-04-15 22:19:22 UTC
SVN commit 1115275 by lalinsky:

Fix parsing of regular 32-bit integers in SynchData::toUInt()

BUG:231075


 M  +3 -1      NEWS  
 M  +4 -8      taglib/mpeg/id3v2/id3v2synchdata.cpp  
 AM            tests/data/compressed_id3_frame.mp3  
 M  +14 -0     tests/test_id3v2.cpp  
 M  +19 -0     tests/test_synchdata.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1115275