Bug 246087 - Akregator crashed when clicking a article
Summary: Akregator crashed when clicking a article
Status: RESOLVED FIXED
Alias: None
Product: Phonon
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 4.5-git
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: aKregator haxx0rz
URL:
Keywords:
: 246070 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-07-28 22:53 UTC by Stefan Böhmann
Modified: 2010-12-05 21:45 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.4.3


Attachments
Fix phonon videoplayer crash (363 bytes, patch)
2010-08-04 05:31 UTC, Robert Marmorstein
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Böhmann 2010-07-28 22:53:29 UTC
Application: akregator (1.6.0)
KDE Platform Version: 4.5.61 (KDE 4.5.61 (KDE 4.6 >= 20100724)) (Compiled from sources)
Qt Version: 4.7.0
Operating System: Linux 2.6.34-gentoo i686
Distribution (Platform): Gentoo Packages

-- Information about the crash:
- What I was doing when the application crashed:
I can read all new (and old) articles, but when it comes to planetkde and Alex Fiestas article "BlueDevil 1.0 Review" then Akregator crashes (repeatedly).

The crash can be reproduced every time.

-- Backtrace:
Application: Akregator (akregator), signal: Segmentation fault
[KCrash Handler]
#7  0xb5363886 in QObject::thread() const () from /usr/lib/qt4/libQtCore.so.4
#8  0xb53658eb in QObject::QObject(QObjectPrivate&, QObject*) () from /usr/lib/qt4/libQtCore.so.4
#9  0xb58c6323 in QLayout::QLayout(QLayoutPrivate&, QLayout*, QWidget*) () from /usr/lib/qt4/libQtGui.so.4
#10 0xb58a3b3c in QBoxLayout::QBoxLayout(QBoxLayout::Direction, QWidget*) () from /usr/lib/qt4/libQtGui.so.4
#11 0xb58a4692 in QVBoxLayout::QVBoxLayout(QWidget*) () from /usr/lib/qt4/libQtGui.so.4
#12 0xb6a52428 in Phonon::VideoPlayerPrivate::ensureCreated (this=0xb446d58) at /home/kdebuild/src/phonon-git/phonon/videoplayer.cpp:64
#13 0xb6a52765 in Phonon::VideoPlayer::mediaObject (this=0xa9fb818) at /home/kdebuild/src/phonon-git/phonon/videoplayer.cpp:102
#14 0xb6d1c0a4 in khtml::RenderMedia::setPlayer (this=0xaa683f8, player=0xa9fb818) at /home/kdebuild/src/KDE/kdelibs/khtml/rendering/render_media.cpp:53
#15 0xb6c9b410 in khtml::HTMLMediaElement::attach (this=0xab76b48) at /home/kdebuild/src/KDE/kdelibs/khtml/html/HTMLMediaElement.cpp:84
#16 0xb6c41dae in khtml::KHTMLParser::insertNode (this=0xb9db660, n=0xab76b48, flat=<value optimized out>) at /home/kdebuild/src/KDE/kdelibs/khtml/html/htmlparser.cpp:428
#17 0xb6c446d3 in khtml::KHTMLParser::parseToken (this=0xb9db660, t=0xaeee624) at /home/kdebuild/src/KDE/kdelibs/khtml/html/htmlparser.cpp:301
#18 0xb6c45533 in khtml::HTMLTokenizer::processToken (this=0xaeee610) at /home/kdebuild/src/KDE/kdelibs/khtml/html/htmltokenizer.cpp:2040
#19 0xb6c4ac46 in khtml::HTMLTokenizer::parseTag (this=0xaeee610, src=...) at /home/kdebuild/src/KDE/kdelibs/khtml/html/htmltokenizer.cpp:1501
#20 0xb6c4dd06 in khtml::HTMLTokenizer::write (this=0xaeee610, str=..., appendData=true) at /home/kdebuild/src/KDE/kdelibs/khtml/html/htmltokenizer.cpp:1798
#21 0xb6b7894d in KHTMLPart::write (this=0x8fa5c48, str=...) at /home/kdebuild/src/KDE/kdelibs/khtml/khtml_part.cpp:2113
#22 0xb1682001 in Akregator::ArticleViewer::renderContent (this=0x8fa5470, text=...) at /home/kdebuild/src/KDE/kdepim/akregator/src/articleviewer.cpp:412
#23 0xb168480e in Akregator::ArticleViewer::showArticle (this=0x8fa5470, article=...) at /home/kdebuild/src/KDE/kdepim/akregator/src/articleviewer.cpp:490
#24 0xb16aa584 in Akregator::MainWidget::slotArticleSelected (this=0x8e7db20, article=...) at /home/kdebuild/src/KDE/kdepim/akregator/src/mainwidget.cpp:810
#25 0xb16af4f0 in Akregator::MainWidget::qt_metacall (this=0x8e7db20, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfb50c98)
    at /home/kdebuild/build/KDE/kdepim/akregator/src/mainwidget.moc:162
#26 0xb5357f3a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4
#27 0xb5367f27 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt4/libQtCore.so.4
#28 0xb1636a23 in Akregator::AbstractSelectionController::currentArticleChanged (this=0x8fa36c0, _t1=...) at /home/kdebuild/build/KDE/kdepim/akregator/src/abstractselectioncontroller.moc:107
#29 0xb16614ce in Akregator::SelectionController::articleSelectionChanged (this=0x8fa36c0) at /home/kdebuild/src/KDE/kdepim/akregator/src/selectioncontroller.cpp:286
#30 0xb1661a93 in Akregator::SelectionController::qt_metacall (this=0x8fa36c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfb50df4)
    at /home/kdebuild/build/KDE/kdepim/akregator/src/selectioncontroller.moc:89
#31 0xb5357f3a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/qt4/libQtCore.so.4
#32 0xb5367f27 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/qt4/libQtCore.so.4
#33 0xb5e7090a in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/qt4/libQtGui.so.4
#34 0xb5e7660b in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/qt4/libQtGui.so.4
#35 0xb5e7779e in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/qt4/libQtGui.so.4
#36 0xb5e65f6d in ?? () from /usr/lib/qt4/libQtGui.so.4
#37 0xb5e66bcb in QTreeView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/qt4/libQtGui.so.4
#38 0xb5e181f2 in QAbstractItemView::mousePressEvent(QMouseEvent*) () from /usr/lib/qt4/libQtGui.so.4
#39 0xb5e63707 in QTreeView::mousePressEvent(QMouseEvent*) () from /usr/lib/qt4/libQtGui.so.4
#40 0xb166ad2f in Akregator::ArticleListView::mousePressEvent (this=0x8f89dc0, ev=0xbfb51de8) at /home/kdebuild/src/KDE/kdepim/akregator/src/articlelistview.cpp:336
#41 0xb58f0890 in QWidget::event(QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#42 0xb5ce3934 in QFrame::event(QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#43 0xb5d729f3 in QAbstractScrollArea::viewportEvent(QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#44 0xb5e155f7 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#45 0xb5e5f134 in QTreeView::viewportEvent(QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#46 0xb5d75385 in ?? () from /usr/lib/qt4/libQtGui.so.4
#47 0xb5351990 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/qt4/libQtCore.so.4
#48 0xb5896d11 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#49 0xb589c31e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt4/libQtGui.so.4
#50 0xb63ca80a in KApplication::notify (this=0xbfb52588, receiver=0x8f8ae58, event=0xbfb51de8) at /home/kdebuild/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:309
#51 0xb53517f2 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/qt4/libQtCore.so.4
#52 0xb5897d28 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/qt4/libQtGui.so.4
#53 0xb591f4ec in ?? () from /usr/lib/qt4/libQtGui.so.4
#54 0xb591e619 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt4/libQtGui.so.4
#55 0xb5947642 in ?? () from /usr/lib/qt4/libQtGui.so.4
#56 0xb4309fc1 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#57 0xb430a7c8 in ?? () from /usr/lib/libglib-2.0.so.0
#58 0xb430aa95 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#59 0xb537f03d in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4
#60 0xb5947256 in ?? () from /usr/lib/qt4/libQtGui.so.4
#61 0xb535099a in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4
#62 0xb5350c3a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/qt4/libQtCore.so.4
#63 0xb53556c1 in QCoreApplication::exec() () from /usr/lib/qt4/libQtCore.so.4
#64 0xb5894c58 in QApplication::exec() () from /usr/lib/qt4/libQtGui.so.4
#65 0x0804f9f1 in main (argc=) at /home/kdebuild/src/KDE/kdepim/akregator/src/main.cpp:103

Reported using DrKonqi
Comment 1 Robert Marmorstein 2010-08-04 05:24:58 UTC
I'm seeing this too.  The problem seems to be an uninitialized pointer (q_ptr) in the PhononVideoPlayerPrivate class -- a variable which seems to really just be an alias for the "this" pointer.  I am pretty sure that the problem is in the constructor.  There are two constructors.  One say:

d->q_ptr = this;

The other says

d_ptr->q_ptr = this; 

Note the subtle _ptr difference.  

The second form is incorrect, because the Q_D macro hasn't been used anywhere.

When I modify the second constructor so that it uses d->q_ptr = this, everything works fine and I can read the BlueDevil review article.
Comment 2 Robert Marmorstein 2010-08-04 05:25:47 UTC
I guess technically phonon is upstream now?  How can we best contact the qt-phonon folks?
Comment 3 Robert Marmorstein 2010-08-04 05:31:03 UTC
Created attachment 49798 [details]
Fix phonon videoplayer crash
Comment 4 Martin Sandsmark 2010-08-04 13:55:45 UTC
thanks for the patch, it has been committed.
Comment 5 Christoph Feck 2010-08-08 17:26:23 UTC
*** Bug 246070 has been marked as a duplicate of this bug. ***
Comment 6 Christoph Feck 2010-08-08 17:27:26 UTC
I can confirm that f8e430b5b465919d8e58f77744ad058e4aa5ad1b fixes the issue for me (reported as Konqueror bug 246070)
Comment 7 Myriam Schweingruber 2010-08-14 16:35:08 UTC
Setting status correctly.