Bug 231410

Summary: Editing AdBlock filter after search crashes Konqueror
Product: [Plasma] Oxygen Reporter: Māris Nartišs <maris.kde>
Component: styleAssignee: Hugo Pereira Da Costa <hugo.pereira.da.costa>
Status: RESOLVED WORKSFORME    
Severity: crash CC: andresbajotierra, hugo.pereira.da.costa, jogarlo18, konq-bugs, thomas
Priority: NOR Keywords: investigated, triaged
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Māris Nartišs 2010-03-20 13:34:28 UTC
Application: konqueror (4.4.1 (KDE 4.4.1))
KDE Platform Version: 4.4.1 (KDE 4.4.1)
Qt Version: 4.6.2
Operating System: Linux 2.6.33-gentoo x86_64
Distribution (Platform): Gentoo Packages

-- Information about the crash:
Settings -> Configure Konqueror -> AdBlock Filters -> Search for any item (search must return an item. If there is no one, create one) -> Select one of results -> Edit it (i.e. add "foo" at the end of filter) -> Update -> OK -> CRASH!
Plain update without using search works just fine.

The crash can be reproduced every time.

 -- Backtrace:
Application: Konqueror (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f7917741760 (LWP 20075))]

Thread 3 (Thread 0x7f78f8c18710 (LWP 20151)):
#0  pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007f79154eaf51 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f79154e15f4 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007f79154ea117 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f791525e884 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007f79139e1f9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f78f9e20710 (LWP 20156)):
#0  pthread_cond_timedwait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007f79154eaf51 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/qt4/libQtCore.so.4
#2  0x00007f79154e15f4 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#3  0x00007f79154ea117 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#4  0x00007f791525e884 in start_thread (arg=<value optimized out>) at pthread_create.c:297
#5  0x00007f79139e1f9d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f7917741760 (LWP 20075)):
[KCrash Handler]
#5  0x00007f7914603a6e in QWidget::ensurePolished() const () from /usr/lib64/qt4/libQtGui.so.4
#6  0x00007f791460bf1a in QWidgetPrivate::activateChildLayoutsRecursively() () from /usr/lib64/qt4/libQtGui.so.4
#7  0x00007f791460bf43 in QWidgetPrivate::activateChildLayoutsRecursively() () from /usr/lib64/qt4/libQtGui.so.4
#8  0x00007f791460bf43 in QWidgetPrivate::activateChildLayoutsRecursively() () from /usr/lib64/qt4/libQtGui.so.4
#9  0x00007f791460bf43 in QWidgetPrivate::activateChildLayoutsRecursively() () from /usr/lib64/qt4/libQtGui.so.4
#10 0x00007f7914610da5 in QWidgetPrivate::prepareToRender(QRegion const&, QFlags<QWidget::RenderFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#11 0x00007f7914615551 in QWidget::render(QPaintDevice*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) () from /usr/lib64/qt4/libQtGui.so.4
#12 0x00007f791468fcaf in QPixmap::grabWidget(QWidget*, QRect const&) () from /usr/lib64/qt4/libQtGui.so.4
#13 0x00007f7908a8f147 in Oxygen::TransitionWidget::grab (this=0x18192c0, widget=0x3, rect=...)
    at /var/tmp/portage/kde-base/kstyles-4.4.1/work/kstyles-4.4.1/kstyles/oxygen/transitions/oxygentransitionwidget.cpp:86
#14 0x00007f7908a8b426 in Oxygen::LineEditData::initializeAnimation (this=0x1ab19a0)
    at /var/tmp/portage/kde-base/kstyles-4.4.1/work/kstyles-4.4.1/kstyles/oxygen/transitions/oxygenlineeditdata.cpp:173
#15 0x00007f7908a8a988 in Oxygen::LineEditData::textChanged (this=0x1ab19a0) at /var/tmp/portage/kde-base/kstyles-4.4.1/work/kstyles-4.4.1/kstyles/oxygen/transitions/oxygenlineeditdata.cpp:127
#16 0x00007f7908a8af91 in Oxygen::LineEditData::qt_metacall (this=0x1ab19a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa84fac60)
    at /var/tmp/portage/kde-base/kstyles-4.4.1/work/kstyles-4.4.1_build/kstyles/oxygen/oxygenlineeditdata.moc:80
#17 0x00007f79155db162 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#18 0x00007f7914968644 in QLineEdit::textChanged(QString const&) () from /usr/lib64/qt4/libQtGui.so.4
#19 0x00007f791496b801 in QLineEdit::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/qt4/libQtGui.so.4
#20 0x00007f7915e26ab3 in KLineEdit::qt_metacall (this=0x0, _c=70, _id=28767456, _a=0x1) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1_build/kdeui/klineedit.moc:134
#21 0x00007f7915d3da5f in KListWidgetSearchLine::qt_metacall (this=0x0, _c=70, _id=28767456, _a=0x1)
    at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1_build/kdeui/klistwidgetsearchline.moc:79
#22 0x00007f79155db162 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#23 0x00007f7914bc33ab in QLineControl::textChanged(QString const&) () from /usr/lib64/qt4/libQtGui.so.4
#24 0x00007f79149713d2 in QLineControl::finishChange(int, bool, bool) () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007f7914971660 in QLineControl::internalSetText(QString const&, int, bool) () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007f7915e203b6 in KLineEdit::clear (this=0x0) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kdeui/widgets/klineedit.cpp:1624
#27 0x00007f7915d3dd28 in KListWidgetSearchLine::clear (this=0x1b680f0) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kdeui/itemviews/klistwidgetsearchline.cpp:133
#28 0x00007f7915d3ded0 in ~KListWidgetSearchLine (this=0x0, __in_chrg=<value optimized out>)
    at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kdeui/itemviews/klistwidgetsearchline.cpp:71
#29 0x00007f79155d715e in QObjectPrivate::deleteChildren() () from /usr/lib64/qt4/libQtCore.so.4
#30 0x00007f7914613465 in QWidget::~QWidget() () from /usr/lib64/qt4/libQtGui.so.4
#31 0x00007f7915e1501b in ~KHBox (this=0x0, __in_chrg=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kdeui/widgets/khbox.cpp:51
#32 0x00007f79155d715e in QObjectPrivate::deleteChildren() () from /usr/lib64/qt4/libQtCore.so.4
#33 0x00007f7914613465 in QWidget::~QWidget() () from /usr/lib64/qt4/libQtGui.so.4
#34 0x00007f791495d00b in QGroupBox::~QGroupBox() () from /usr/lib64/qt4/libQtGui.so.4
#35 0x00007f79155d715e in QObjectPrivate::deleteChildren() () from /usr/lib64/qt4/libQtCore.so.4
#36 0x00007f7914613465 in QWidget::~QWidget() () from /usr/lib64/qt4/libQtGui.so.4
#37 0x00007f78fd5014c2 in ~KCMFilter (this=0x1b29260, __in_chrg=<value optimized out>) at /var/tmp/portage/kde-base/konqueror-4.4.1/work/konqueror-4.4.1/konqueror/settings/konqhtml/filteropts.cpp:150
#38 0x00007f790bd3f63a in KCModuleProxy::deleteClient (this=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kutils/kcmoduleproxy.cpp:219
#39 0x00007f790bd3ceb6 in KCMultiDialogPrivate::_k_dialogClosed (this=0x1de2de0) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kutils/kcmultidialog.cpp:156
#40 0x00007f790bd3ed14 in KCMultiDialog::qt_metacall (this=0x1d0d6c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa84fb320)
    at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1_build/kutils/kcmultidialog.moc:100
#41 0x00007f79155db162 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#42 0x00007f791460d0a9 in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#43 0x00007f79145bfee8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#44 0x00007f79145c5c52 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#45 0x00007f7915d63ad2 in KApplication::notify (this=0x7fffa84fd820, receiver=0x1d0d6c0, event=0x7fffa84fbad0)
    at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kdeui/kernel/kapplication.cpp:302
#46 0x00007f79155c9e7a in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#47 0x00007f791460bb4c in QWidgetPrivate::hide_helper() () from /usr/lib64/qt4/libQtGui.so.4
#48 0x00007f7914613ae9 in QWidget::setVisible(bool) () from /usr/lib64/qt4/libQtGui.so.4
#49 0x00007f7914a16947 in QDialog::setVisible(bool) () from /usr/lib64/qt4/libQtGui.so.4
#50 0x00007f7914a15dff in QDialog::done(int) () from /usr/lib64/qt4/libQtGui.so.4
#51 0x00007f790bd3ed85 in KCMultiDialog::qt_metacall (this=0x1d0d6c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa84fbd00)
    at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1_build/kutils/kcmultidialog.moc:96
#52 0x00007f79155db162 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#53 0x00007f7915cde5b0 in KDialog::slotButtonClicked (this=0x1d0d6c0, button=4) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kdeui/dialogs/kdialog.cpp:862
#54 0x00007f7915ce01d9 in KDialog::qt_metacall (this=0x1d0d6c0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffa84fbf10)
    at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1_build/kdeui/kdialog.moc:190
#55 0x00007f7915d97ee9 in KPageDialog::qt_metacall (this=0x0, _c=70, _id=28767456, _a=0x1) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1_build/kdeui/kpagedialog.moc:70
#56 0x00007f790bd3ecbd in KCMultiDialog::qt_metacall (this=0x0, _c=70, _id=28767456, _a=0x1) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1_build/kutils/kcmultidialog.moc:86
#57 0x00007f79155db162 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#58 0x00007f79155dfc1e in QSignalMapper::mapped(int) () from /usr/lib64/qt4/libQtCore.so.4
#59 0x00007f79155e0c7a in QSignalMapper::map(QObject*) () from /usr/lib64/qt4/libQtCore.so.4
#60 0x00007f79155e0ea1 in QSignalMapper::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#61 0x00007f79155db162 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#62 0x00007f7914bc0d80 in QAbstractButton::clicked(bool) () from /usr/lib64/qt4/libQtGui.so.4
#63 0x00007f791491bd80 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#64 0x00007f791491ca6c in ?? () from /usr/lib64/qt4/libQtGui.so.4
#65 0x00007f791491cc66 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#66 0x00007f791460d090 in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#67 0x00007f79145bfee8 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#68 0x00007f79145c6412 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#69 0x00007f7915d63ad2 in KApplication::notify (this=0x7fffa84fd820, receiver=0x21219e0, event=0x7fffa84fcb70)
    at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kdeui/kernel/kapplication.cpp:302
#70 0x00007f79155c9e7a in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#71 0x00007f79145c50c7 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/qt4/libQtGui.so.4
#72 0x00007f7914639bc6 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#73 0x00007f79146385e1 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#74 0x00007f791465f9cc in ?? () from /usr/lib64/qt4/libQtGui.so.4
#75 0x00007f7910a3ebed in g_main_dispatch (context=0xd2d120) at gmain.c:1960
#76 IA__g_main_context_dispatch (context=0xd2d120) at gmain.c:2513
#77 0x00007f7910a41eb9 in g_main_context_iterate (context=0xd2d120, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2591
#78 0x00007f7910a42018 in IA__g_main_context_iteration (context=0xd2d120, may_block=1) at gmain.c:2654
#79 0x00007f79155ef3a0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#80 0x00007f791465f65e in ?? () from /usr/lib64/qt4/libQtGui.so.4
#81 0x00007f79155c8ad2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#82 0x00007f79155c8e23 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#83 0x00007f79155cc56b in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#84 0x00007f79091d5a9c in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /var/tmp/portage/kde-base/konqueror-4.4.1/work/konqueror-4.4.1/konqueror/src/konqmain.cpp:257
#85 0x0000000000407173 in launch (argc=2, _name=<value optimized out>, args=<value optimized out>, cwd=<value optimized out>, envc=2, envs=<value optimized out>, reset_env=false, tty=0x0, 
    avoid_loops=false, startup_id_str=0xcf9f04 "glacier;1269085125;650089;2469_TIME6810404") at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kinit/kinit.cpp:710
#86 0x0000000000407aa2 in handle_launcher_request (sock=8, who=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kinit/kinit.cpp:1202
#87 0x0000000000408245 in handle_requests (waitForPid=0) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kinit/kinit.cpp:1395
#88 0x0000000000408e60 in main (argc=4, argv=<value optimized out>, envp=<value optimized out>) at /var/tmp/portage/kde-base/kdelibs-4.4.1-r1/work/kdelibs-4.4.1/kinit/kinit.cpp:1834

Possible duplicates by query: bug 226364, bug 216215, bug 213882, bug 209846.

Reported using DrKonqi
Comment 1 Dario Andres 2010-03-20 15:44:58 UTC
This looks like bug 216215, a bug in the Oxygen style with animations enabled...
Regards
Comment 2 Hugo Pereira Da Costa 2010-03-23 22:16:06 UTC
unfortunately, this backtrace is missing the values of the pointers for which most of the methods are called. Is this because of missing debugging symbols (I'm no expert on backtrace) ? 
Other than that, yes this is the same type of crash as bug 216215
A widget gets deleted at: #30 and then ensuredPolished() is called for it later on. 

I made a couple of commits that might prevent that: 

SVN commit 1106745 by hpereiradacosta:

Added protection to disable animation when target is destroyed.
CCBUG: 216215 231410 


 M  +8 -0      oxygencomboboxdata.cpp  
 M  +3 -0      oxygencomboboxdata.h  
 M  +10 -0     oxygenlabeldata.cpp  
 M  +3 -0      oxygenlabeldata.h  
 M  +18 -3     oxygenlineeditdata.cpp  
 M  +4 -5      oxygenlineeditdata.h  
 M  +8 -0      oxygenstackedwidgetdata.cpp  
 M  +3 -0      oxygenstackedwidgetdata.h  


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

but am not sure whether the protection is enough.
I have not yet backported it. 
Can anyone running on trunk double-check ? 
Other than that I'm still looking for a way to detect these widgets deletions.
Comment 3 Dario Andres 2010-04-03 14:30:51 UTC
This should be rechecked against KDE SC 4.5 (or 4.4.3 if the commit is backported...)
Comment 4 Frank Reininghaus 2010-06-02 12:20:22 UTC
*** Bug 240442 has been marked as a duplicate of this bug. ***
Comment 5 Frank Reininghaus 2010-06-02 12:20:57 UTC
*** Bug 235369 has been marked as a duplicate of this bug. ***
Comment 6 Andrew Crouthamel 2018-09-20 21:53:23 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days, the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please set the bug status as REPORTED so that the KDE team knows that the bug is ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 7 Andrew Crouthamel 2018-10-21 04:42:01 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!