Summary: | Amarok crashed while using APG [@ APG::ConstraintSolver::select_population] | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Jessie A. Morris <jessie> |
Component: | Playlists/Automated Playlist Generator | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aedo999, alinda.helleman, dirtpilot1980, kfunk, stharward |
Priority: | NOR | ||
Version: | 2.4.90 (2.5 beta) | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 2.6 | |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi New crash information added by DrKonqi |
Description
Jessie A. Morris
2012-01-03 21:25:55 UTC
Could you please upgrade to Amarok 2.5 and try again? Upgrading to 2.5 won't help because it's a problem with Qt, not Amarok. I know the APG has these idiopathic crashes in QList and QHash. My guess is that for some reason KSharedPtr doesn't count its references properly when it's in a Qt container, and that in some extremely rare instances the pointer gets deleted while it's still in a container and causes a segfault. This shouldn't happen. But I can't reproduce the crash reliably at all, and I haven't been able to wade into the KDE and Qt code and figure out just why the hell a reference-counting pointer class isn't working like a damn reference-counting pointer class ought to work. Soren, just had a quick look at your code. I'm quite sure you miss a "continue" between line 255 and 256 in APG::ConstraintSolver::select_population(). Currently it's possible that "delete it.key()" may operate on a dangling iterator (out of bounds). Git commit a8650283a1330df4362b4802decee98f51017b0f by Soren Harward. Committed on 05/01/2012 at 14:18. Pushed by stharward into branch 'master'. Fix potential dangling iterator M +1 -0 ChangeLog M +2 -0 src/playlistgenerator/ConstraintSolver.cpp http://commits.kde.org/amarok/a8650283a1330df4362b4802decee98f51017b0f *** Bug 291096 has been marked as a duplicate of this bug. *** Created attachment 70124 [details]
New crash information added by DrKonqi
amarok (2.5.0) on KDE Platform 4.8.1 (4.8.1) using Qt 4.8.0
- What I was doing when the application crashed: I selected one of APG presets and hit generate. The bar generating playlist was moving and suddenly Amarok crashed.
-- Backtrace (Reduced):
#6 QList<KSharedPtr<Meta::Track> >::~QList (this=0x100000001, __in_chrg=<optimized out>) at /usr/include/qt4/QtCore/qlist.h:718
#7 0x00007f2e0481e8b1 in APG::ConstraintSolver::select_population (this=0x3b5bbe0, population=..., best=0x3e1f890) at ../../src/playlistgenerator/ConstraintSolver.cpp:261
#8 0x00007f2e0482281f in APG::ConstraintSolver::run (this=0x3b5bbe0) at ../../src/playlistgenerator/ConstraintSolver.cpp:167
#9 0x00007f2e0003b491 in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f2dc7bffd80, th=0x2a01670, job=0x3b5bbe0) at ../../../threadweaver/Weaver/Job.cpp:106
#10 0x00007f2e0003b5bc in ThreadWeaver::Job::execute (this=0x3b5bbe0, th=0x2a01670) at ../../../threadweaver/Weaver/Job.cpp:135
Created attachment 70805 [details]
New crash information added by DrKonqi
amarok (2.5.0) on KDE Platform 4.8.2 (4.8.2) using Qt 4.8.1
- What I was doing when the application crashed: Chose apg then hit execute a few seconds later it crashed.
-- Backtrace (Reduced):
#6 QList<KSharedPtr<Meta::Track> >::~QList (this=0x100000001, __in_chrg=<optimized out>) at /usr/include/qt4/QtCore/qlist.h:731
#7 0x00007f0c67244291 in APG::ConstraintSolver::select_population (this=0x2971420, population=..., best=0x7f0c18205e20) at ../../src/playlistgenerator/ConstraintSolver.cpp:261
#8 0x00007f0c672481ff in APG::ConstraintSolver::run (this=0x2971420) at ../../src/playlistgenerator/ConstraintSolver.cpp:167
#9 0x00007f0c6298305b in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f0c27009da0, th=0x1bddcc0, job=0x2971420) at ../../../threadweaver/Weaver/Job.cpp:106
#10 0x00007f0c629831cc in ThreadWeaver::Job::execute (this=0x2971420, th=0x1bddcc0) at ../../../threadweaver/Weaver/Job.cpp:135
> Created attachment 70805 [details]
> New crash information added by DrKonqi
This bug was RESOLVED FIXED four months ago. Posting new crash reports isn't going to help anything. You're just going to have to wait for 2.6 to come out, or start using the GIT version.
Created attachment 74969 [details]
New crash information added by DrKonqi
amarok (2.5.0) on KDE Platform 4.8.5 (4.8.5) "release 2" using Qt 4.8.1
- What I was doing when the application crashed:
I clicked on the automatic playlist button.
-- Backtrace (Reduced):
#6 QList<KSharedPtr<Meta::Track> >::~QList (this=0x100000001, __in_chrg=<optimized out>) at /usr/include/QtCore/qlist.h:731
#7 0x00007ffa32801421 in APG::ConstraintSolver::select_population (this=this@entry=0xf3c980, population=..., best=best@entry=0x7ff9dc02f440) at /usr/src/debug/amarok-2.5.0/src/playlistgenerator/ConstraintSolver.cpp:261
#8 0x00007ffa32801d2c in APG::ConstraintSolver::run (this=0xf3c980) at /usr/src/debug/amarok-2.5.0/src/playlistgenerator/ConstraintSolver.cpp:167
#9 0x00007ffa2d73782a in ThreadWeaver::JobRunHelper::runTheJob (this=this@entry=0x7ff9ebffedd0, th=th@entry=0x16db600, job=job@entry=0xf3c980) at /usr/src/debug/kdelibs-4.8.5/threadweaver/Weaver/Job.cpp:106
#10 0x00007ffa2d7379a1 in ThreadWeaver::Job::execute (this=0xf3c980, th=0x16db600) at /usr/src/debug/kdelibs-4.8.5/threadweaver/Weaver/Job.cpp:135
(In reply to comment #9) > Created attachment 74969 [details] > New crash information added by DrKonqi > > amarok (2.5.0) on KDE Platform 4.8.5 (4.8.5) "release 2" using Qt 4.8.1 Please upgrade to Amarok 2.6, this is solved since quite some time. Also adding backtraces to bugs marked as solved in a version ahead of yours is not really useful. |