Summary: | Amarok crashes on startup [@ Collections::AudioCdCollection::updateProxyTracks] | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Peter Terpstra <peter> |
Component: | Collections/CD | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | cobexer, dominichosler, nickharlow, pjnightingale |
Priority: | NOR | Keywords: | regression, release_blocker |
Version: | 2.5-git | ||
Target Milestone: | 2.6 | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/amarok/a3d378de5aca583bbbc13d1966df258f27e7f174 | Version Fixed In: | 2.6 |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
log of amarok -debug --nofork New crash information added by DrKonqi |
Description
Peter Terpstra
2010-11-11 10:20:40 UTC
Confirmed by duplicate, adapted title. *** Bug 263768 has been marked as a duplicate of this bug. *** Created attachment 60126 [details]
New crash information added by DrKonqi
amarok (2.4.0.90) on KDE Platform 4.6.2 (4.6.2) using Qt 4.7.2
- What I was doing when the application crashed:
1. insert Audio CD
2. Start AMArok
3. Try To Play a Track from the CD
Result:
The Audio CD Collection showed 0 tracks
Amarok Crashed
-- Backtrace (Reduced):
#6 findChar (str=0x4545454545454545, len=1162167621, ch=..., from=<optimized out>, cs=Qt::CaseSensitive) at tools/qstring.cpp:318
#7 0x00007f668e3576b2 in QString::split (this=0x7ffff3d315a0, sep=..., behavior=QString::KeepEmptyParts, cs=Qt::CaseSensitive) at tools/qstring.cpp:6081
#8 0x00007f6663c6ff8d in Collections::AudioCdCollection::updateProxyTracks (this=0x14774d0) at /usr/include/QtCore/qstring.h:883
#9 0x00007f6663c71fc4 in Collections::AudioCdCollection::infoFetchComplete (this=<optimized out>, job=<optimized out>) at /usr/src/debug/amarok-2.4.0.90/src/core-impl/collections/audiocd/AudioCdCollection.cpp:314
#10 0x00007f6663c7485c in Collections::AudioCdCollection::qt_metacall (this=0x14774d0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7ffff3d31f20) at /usr/src/debug/amarok-2.4.0.90/build/src/core-impl/collections/audiocd/AudioCdCollection.moc:127
Created attachment 60127 [details]
log of amarok -debug --nofork
I was just testing wether amarok audio CD support was working (because of some complaints on the opensuse ml) but i just found amarok crash
amarok was playing music fine before (so i doubt that those crashed tables were crashed before)
I can't reproduce this here with latest git. What doesn't work is the detection of an already inserted CD, but that is another problem. Closing correctly. *** Bug 290542 has been marked as a duplicate of this bug. *** Reopening based on bug 290542 Created attachment 67859 [details]
New crash information added by DrKonqi
amarok (2.5-GIT) on KDE Platform 4.7.4 (4.7.4) using Qt 4.8.0
I tried this again today with current git and had it crash again:
i have no idea how those Qt datatypes are supposed to look, but this is what i get:
the cd i inserted has 12 tracks, so i think whatever fills that map inserts crap, or was not done yet?
(gdb) p *m_proxyMap.d
$11 = {
backward = 0xf8f7d8,
forward = {0xf9f538, 0x1073e78, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa, 0xbabababababababa},
ref = {
_q_value = 1
},
topLevel = 1,
size = 12,
randomBits = 12,
insertInOrder = 0,
sharable = 1,
strictAlignment = 0,
reserved = 0,
static shared_null = {
backward = 0x7ffff6235820,
forward = {0x7ffff6235820, 0x0 <repeats 11 times>},
ref = {
_q_value = 1276
},
topLevel = 0,
size = 0,
randomBits = 0,
insertInOrder = 0,
sharable = 1,
strictAlignment = 0,
reserved = 0,
static shared_null = <same as static member of an already seen type>
}
}
(gdb) f
#2 0x00007fffd9cf9218 in Collections::AudioCdCollection::updateProxyTracks (this=0xf36e70) at /home/amarok-devel/kde/src/amarok/src/core-impl/collections/audiocd/AudioCdCollection.cpp:576
576 const QStringList &parts = urlString.split( '/' );
# set|grep MALLOC
MALLOC_CHECK_=3
MALLOC_PERTURB_=69
HTH
-- Backtrace (Reduced):
#6 findChar (str=0x4545454545454545, len=1162167621, ch=..., from=0, cs=Qt::CaseSensitive) at tools/qstring.cpp:340
#7 0x00007f45ed83e992 in QString::split (this=0x7fff37dab800, sep=..., behavior=QString::KeepEmptyParts, cs=Qt::CaseSensitive) at tools/qstring.cpp:6169
#8 0x00007f45d1708218 in Collections::AudioCdCollection::updateProxyTracks (this=0xf328f0) at /home/amarok-devel/kde/src/amarok/src/core-impl/collections/audiocd/AudioCdCollection.cpp:576
#9 0x00007f45d170adb4 in Collections::AudioCdCollection::infoFetchComplete (this=0xf328f0, job=<optimized out>) at /home/amarok-devel/kde/src/amarok/src/core-impl/collections/audiocd/AudioCdCollection.cpp:317
[...]
#11 0x00007f45edd85382 in KJob::result (this=<optimized out>, _t1=0x1955c80) at /usr/src/debug/kdelibs-4.7.4/build/kdecore/kjob.moc:208
*** Bug 296288 has been marked as a duplicate of this bug. *** *** Bug 297621 has been marked as a duplicate of this bug. *** Git commit a3d378de5aca583bbbc13d1966df258f27e7f174 by Matěj Laitl. Committed on 07/05/2012 at 23:31. Pushed by laitl into branch 'master'. AudioCdCollection: don't create a reference out of temporary var (crashfix) There's following code in AudioCdCollection::updateProxyTracks(): const QString &urlString = url.url().remove( "audiocd:/" ); Which I think is wrong, because url.url() returns a temporary QString and QString::remove() returns a reference to itself. However, the temporary is AFAICS destroyed as soon as this line ends. This IMO results in urlString being an invalid reference. I'm not really sure about this, I haven't read C++ spec, but given many users report crash on the following line, this could be the culprit. I was never able to reproduce the bug, so I'm shooting blindly. Reporters, please test reproducibility with current git and reopen if this is not fixed. FIXED-IN: 2.6 DIGEST: fix grave crash M +1 -0 ChangeLog M +1 -1 src/core-impl/collections/audiocd/AudioCdCollection.cpp http://commits.kde.org/amarok/a3d378de5aca583bbbc13d1966df258f27e7f174 |