Bug 244035

Summary: Amarok segfaults on Find stale records on iPhone 3GS [@ Meta::IpodHandler::writeITunesDB]
Product: [Applications] amarok Reporter: kgaramszegi
Component: Collections/iPod iPhoneAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED DUPLICATE    
Severity: crash CC: aumuell, matej, teuf
Priority: NOR    
Version: 2.3.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description kgaramszegi 2010-07-09 14:05:14 UTC
Application: amarok (2.3.0)
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-23-generic x86_64
Distribution: Ubuntu 10.04 LTS

-- Information about the crash:
I clicked to find stale records on iPhone 3GS, which has progressed to 100%, and it said, 40 stale records have been added to iPod database. Then it segfault. It is reproducible every time, Amarok running on Ubuntu 10.04, amd64 version.

The crash can be reproduced every time.

 -- Backtrace:
Application: Amarok (amarok), signal: Segmentation fault
pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
[Current thread is 1 (Thread 0x7fb94f819780 (LWP 19236))]

Thread 7 (Thread 0x7fb92886c710 (LWP 19259)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb94cf6d72b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x17109a0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x17109a0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fb9495c0026 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1826980, th=0x16d14b0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb9495c26ab in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x16d14b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x16d14b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x16d14b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007fb9495c0bff in ThreadWeaver::ThreadRunHelper::run (this=0x7fb92886bde0, parent=0x1826980, th=0x16d14b0) at ../../../threadweaver/Weaver/Thread.cpp:87
#8  0x00007fb9495c1168 in ThreadWeaver::Thread::run (this=0x16d14b0) at ../../../threadweaver/Weaver/Thread.cpp:142
#9  0x00007fb94cf6c775 in QThreadPrivate::start (arg=0x16d14b0) at thread/qthread_unix.cpp:248
#10 0x00007fb94ab759ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#11 0x00007fb94c72b6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fb918ef0710 (LWP 19260)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb947ad7ca6 in ?? () from /usr/lib/libQtWebKit.so.4
#2  0x00007fb947ad7ce9 in ?? () from /usr/lib/libQtWebKit.so.4
#3  0x00007fb94ab759ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007fb94c72b6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fb917b4f710 (LWP 19261)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb94cf6d72b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x17109a0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x17109a0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fb9495c0026 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1826980, th=0x2319730) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb9495c26ab in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x2319730) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x2319730) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb9495c0bff in ThreadWeaver::ThreadRunHelper::run (this=0x7fb917b4ede0, parent=0x1826980, th=0x2319730) at ../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007fb9495c1168 in ThreadWeaver::Thread::run (this=0x2319730) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007fb94cf6c775 in QThreadPrivate::start (arg=0x2319730) at thread/qthread_unix.cpp:248
#9  0x00007fb94ab759ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007fb94c72b6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fb91734e710 (LWP 19262)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb94cf6d72b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x17109a0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x17109a0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fb9495c0026 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1826980, th=0x231a470) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb9495c26ab in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#12 0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#13 0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#14 0x00007fb9495c26c4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x186f3e0, th=0x231a470) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#15 0x00007fb9495c0bff in ThreadWeaver::ThreadRunHelper::run (this=0x7fb91734dde0, parent=0x1826980, th=0x231a470) at ../../../threadweaver/Weaver/Thread.cpp:87
#16 0x00007fb9495c1168 in ThreadWeaver::Thread::run (this=0x231a470) at ../../../threadweaver/Weaver/Thread.cpp:142
#17 0x00007fb94cf6c775 in QThreadPrivate::start (arg=0x231a470) at thread/qthread_unix.cpp:248
#18 0x00007fb94ab759ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#19 0x00007fb94c72b6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#20 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fb916b4d710 (LWP 19263)):
[KCrash Handler]
#5  0x00007fb924002030 in ?? ()
#6  0x00007fb940cb59c6 in xmlParseCatalogFile__internal_alias (filename=0x1fe8960 "file:///etc/xml/catalog") at catalog.c:901
#7  0x00007fb940cb5c41 in xmlParseXMLCatalogFile (catal=0x20033a0) at catalog.c:1347
#8  xmlFetchXMLCatalogFile (catal=0x20033a0) at catalog.c:1452
#9  0x00007fb940cb60c0 in xmlCatalogListXMLResolve (catal=0x20033a0, pubID=0x2002020 "-//Apple Computer//DTD PLIST 1.0//EN", sysID=0x1fdc690 "http://www.apple.com/DTDs/PropertyList-1.0.dtd")
    at catalog.c:2060
#10 0x00007fb940cb6bc0 in xmlACatalogResolve__internal_alias (catal=0x1fff8a0, pubID=0x2002020 "-//Apple Computer//DTD PLIST 1.0//EN", 
    sysID=0x1fdc690 "http://www.apple.com/DTDs/PropertyList-1.0.dtd") at catalog.c:2874
#11 0x00007fb940c72e5b in xmlResolveResourceFromCatalog (URL=0x1fdc690 "http://www.apple.com/DTDs/PropertyList-1.0.dtd", ID=0x2002020 "-//Apple Computer//DTD PLIST 1.0//EN", ctxt=0x1ffc3c0)
    at xmlIO.c:3804
#12 0x00007fb940c73924 in xmlDefaultExternalEntityLoader (URL=0x1fdc690 "http://www.apple.com/DTDs/PropertyList-1.0.dtd", ID=0x2002020 "-//Apple Computer//DTD PLIST 1.0//EN", ctxt=0x1ffc3c0)
    at xmlIO.c:3869
#13 0x00007fb940c72eff in xmlLoadExternalEntity__internal_alias (URL=<value optimized out>, ID=0x2002020 "-//Apple Computer//DTD PLIST 1.0//EN", ctxt=0x1ffc3c0) at xmlIO.c:3937
#14 0x00007fb940d0d14b in xmlSAX2ResolveEntity__internal_alias (ctx=0x1ffc3c0, publicId=0x2002020 "-//Apple Computer//DTD PLIST 1.0//EN", systemId=<value optimized out>) at SAX2.c:512
#15 0x00007fb940d0d21d in xmlSAX2ExternalSubset__internal_alias (ctx=0x1ffc3c0, name=0x2004c5f "plist", ExternalID=0x2002020 "-//Apple Computer//DTD PLIST 1.0//EN", SystemID=0x7fb94ad87280 "\001")
    at SAX2.c:402
#16 0x00007fb940c62229 in xmlParseDocument__internal_alias (ctxt=0x1ffc3c0) at parser.c:10185
#17 0x00007fb940c62de5 in xmlSAXParseMemoryWithData__internal_alias (sax=0x0, buffer=<value optimized out>, size=<value optimized out>, recovery=0, data=0x0) at parser.c:13709
#18 0x00007fb928c8df71 in plist_to_xml () from /usr/lib/libplist.so.1
#19 0x00007fb928a7ad8c in internal_plist_send () from /usr/lib/libimobiledevice.so.0
#20 0x00007fb928a7bf36 in lockdownd_send () from /usr/lib/libimobiledevice.so.0
#21 0x00007fb928a7cd0b in lockdownd_query_type () from /usr/lib/libimobiledevice.so.0
#22 0x00007fb928a7d891 in lockdownd_client_new_with_handshake () from /usr/lib/libimobiledevice.so.0
#23 0x00007fb928eab0ca in ?? () from /usr/lib/libgpod.so.4
#24 0x00007fb928eacc41 in itdb_start_sync () from /usr/lib/libgpod.so.4
#25 0x00007fb928eb3e21 in itdb_write () from /usr/lib/libgpod.so.4
#26 0x00007fb92911fb3c in Meta::IpodHandler::writeITunesDB (this=0x1818ee0, threaded=<value optimized out>) at ../../../../src/collection/ipodcollection/handler/IpodHandler.cpp:987
#27 0x00007fb92911fd6f in Meta::DBWorkerThread::run (this=0x1f79570) at ../../../../src/collection/ipodcollection/handler/IpodHandler.cpp:2277
#28 0x00007fb9495c18dd in ThreadWeaver::JobRunHelper::runTheJob (this=0x7fb916b4cd50, th=0x1528c40, job=0x1f79570) at ../../../threadweaver/Weaver/Job.cpp:106
#29 0x00007fb9495c1bde in ThreadWeaver::Job::execute (this=0x1f79570, th=0x1528c40) at ../../../threadweaver/Weaver/Job.cpp:135
#30 0x00007fb9495c0bcf in ThreadWeaver::ThreadRunHelper::run (this=0x7fb916b4cde0, parent=0x1826980, th=0x1528c40) at ../../../threadweaver/Weaver/Thread.cpp:95
#31 0x00007fb9495c1168 in ThreadWeaver::Thread::run (this=0x1528c40) at ../../../threadweaver/Weaver/Thread.cpp:142
#32 0x00007fb94cf6c775 in QThreadPrivate::start (arg=0x1528c40) at thread/qthread_unix.cpp:248
#33 0x00007fb94ab759ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#34 0x00007fb94c72b6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#35 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fb91634c710 (LWP 19264)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb948e2b2a6 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7fb949109220) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304
#2  0x00007fb948e2b2e9 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x7fb9491172ec) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438
#3  0x00007fb94ab759ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007fb94c72b6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb94f819780 (LWP 19236)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb940cb8ceb in xmlRMutexLock__internal_alias (tok=0x1fff830) at threads.c:372
#2  0x00007fb940cb402c in xmlCatalogCleanup__internal_alias () at catalog.c:3280
#3  0x00007fb940c4c90a in xmlCleanupParser__internal_alias () at parser.c:14031
#4  0x00007fb94c67e630 in __cxa_finalize (d=0x7fb942900e80) at cxa_finalize.c:56
#5  0x00007fb9426a12a6 in ?? () from /usr/lib/libstreamanalyzer.so.0
#6  0x000000000000012e in ?? ()
#7  0x0000000000000000 in ?? ()

Reported using DrKonqi
Comment 1 Myriam Schweingruber 2010-08-09 15:00:32 UTC
Is this still valid for Amarok 2.3.1 or later?
Comment 2 Christophe Fergeau 2010-08-09 15:10:25 UTC
The backtrace points at a crash in libplist. Dunno if that's due to it being passed invalid data or to a bug in libplist. If it's reproducible, a backtrace with libimobiledevice and libplist debugging symbols installed would be really useful.
Comment 3 Myriam Schweingruber 2010-08-15 11:21:43 UTC
Changing Status to Backtrace.
Comment 4 Myriam Schweingruber 2010-09-30 00:38:53 UTC

*** This bug has been marked as a duplicate of bug 213097 ***