Bug 70430 - crash when closing konqueror after changing text completion
Summary: crash when closing konqueror after changing text completion
Status: RESOLVED DUPLICATE of bug 61412
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
: 70468 72482 (view as bug list)
Depends on:
Blocks:
 
Reported: 2003-12-14 20:43 UTC by Arnaud Burlet
Modified: 2004-02-18 15:42 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Backtrace of the crash (7.35 KB, text/plain)
2003-12-14 20:44 UTC, Arnaud Burlet
Details
valgrind report of a konqueror session described in the bug report (22.58 KB, application/x-gzip)
2003-12-14 20:46 UTC, Arnaud Burlet
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Arnaud Burlet 2003-12-14 20:43:13 UTC
Version:            (using KDE KDE 3.1.94)
Installed from:    Gentoo Packages
Compiler:          gcc 3.2.3 gcc version 3.2.3 20030422 (Gentoo Linux 1.4 3.2.3-r3, propolice)
OS:          Linux

how to reproduce :
 - goto http://www.kochonland.com
when page is loaded :
 - right click in both text fields and in each popup menu, change "text completion" fro "dropdown list" to "dropdown list & automatic"
- once done close konqueror window
... konqueror crashes and text completion settings is not saved.

expected behaviour : no crash, and completion settings remembered next time I start konqueror.
Comment 1 Arnaud Burlet 2003-12-14 20:44:21 UTC
Created attachment 3702 [details]
Backtrace of the crash
Comment 2 Arnaud Burlet 2003-12-14 20:46:16 UTC
Created attachment 3703 [details]
valgrind report of a konqueror session described in the bug report

generated with : 
valgrind -v --num-callers=50 --trace-children=yes --leak-check=yes konqueror 2>
konqueror.vg
Comment 3 Thiago Macieira 2003-12-15 00:07:12 UTC
For future reference: paste backtraces instead of attaching them so that searching is easier.

[New Thread 16384 (LWP 3493)]
0x413b3137 in waitpid () from /lib/libpthread.so.0
#0  0x413b3137 in waitpid () from /lib/libpthread.so.0
#1  0x407b3b1d in KCrash::defaultCrashHandler(int) (sig=11) at kcrash.cpp:246
#2  0x413b1fea in __pthread_sighandler () from /lib/libpthread.so.0
#3  <signal handler called>
#4  0x20736968 in ?? ()
#5  0x4003d81b in KParts::Part::slotWidgetDestroyed() (this=0x830f6a0)
    at part.cpp:267
#6  0x4003f66a in KParts::Part::qt_invoke(int, QUObject*) (this=0x830f6a0, 
    _id=2, _o=0xfffffe00) at part.moc:108
#7  0x4003facb in KParts::ReadOnlyPart::qt_invoke(int, QUObject*) (
    this=0x830f6a0, _id=2, _o=0x830f6a0) at part.moc:261
#8  0x4682dca3 in KHTMLPart::qt_invoke(int, QUObject*) (this=0x830f6a0, _id=2, 
    _o=0x830f6a0) at khtml_part.moc:531
#9  0x40c4f628 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x85282c8, clist=0x8348cb0, o=0xbfffd7d0) at kernel/qobject.cpp:2357
#10 0x40c4f346 in QObject::activate_signal(int) (this=0x85282c8, signal=0)
    at kernel/qobject.cpp:2302
#11 0x4101f534 in QObject::destroyed() (this=0x85282c8)
    at .moc/debug-shared-mt/moc_qobject.cpp:102
#12 0x40c4b8dc in ~QObject (this=0x85282c8) at kernel/qobject.cpp:446
#13 0x40c8b5c8 in ~QWidget (this=0x85282c8) at kernel/qwidget.cpp:933
#14 0x402e2bf8 in ~QFrame (this=0xfffffe00) at kurlbar.cpp:296
#15 0x40d9a538 in ~QScrollView (this=0x85282c8) at widgets/qscrollview.cpp:635
#16 0x467fcba3 in ~KHTMLView (this=0x830f6a0) at khtmlview.cpp:350
#17 0x40c4c81a in QObject::event(QEvent*) (this=0x85282c8, e=0x84af870)
    at kernel/qobject.cpp:750
#18 0x40c91d05 in QWidget::event(QEvent*) (this=0x85282c8, e=0x84af870)
    at kernel/qwidget.cpp:4408
#19 0x40bddb95 in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbfffef60, receiver=0x85282c8, e=0x84af870)
    at kernel/qapplication.cpp:2582
#20 0x40bdd807 in QApplication::notify(QObject*, QEvent*) (this=0xbfffef60, 
    receiver=0x85282c8, e=0x84af870) at kernel/qapplication.cpp:2470
#21 0x4072bab9 in KApplication::notify(QObject*, QEvent*) (this=0xbfffef60, 
    receiver=0x85282c8, event=0x84af870) at kapplication.cpp:509
#22 0x40048c2d in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0xfffffe00, event=0x0) at qapplication.h:492
#23 0x40bdecaa in QApplication::sendPostedEvents(QObject*, int) (receiver=0x0, 
    event_type=0) at kernel/qapplication.cpp:3204
#24 0x40bdea60 in QApplication::sendPostedEvents() ()
    at kernel/qapplication.cpp:3115
#25 0x40b78a80 in QEventLoop::processEvents(unsigned) (this=0x80e1570, 
    flags=15) at kernel/qeventloop_x11.cpp:144
#26 0x40b68a57 in qt_xclb_wait_for_event(_XDisplay*, unsigned long, int, _XEvent*, int) (dpy=0x8069c50, win=52429014, type=31, event=0xbfffde20, timeout=5000)
    at kernel/qclipboard_x11.cpp:479
#27 0x40b6ba89 in QClipboardWatcher::getDataInFormat(unsigned long) const (
    this=0x84b6020, fmtatom=365) at kernel/qclipboard_x11.cpp:1381
#28 0x40b6afda in QClipboardWatcher::format(int) const (this=0x84b6020, n=0)
    at kernel/qclipboard_x11.cpp:1249
#29 0x40c3dbc8 in QMimeSource::provides(char const*) const (this=0x84b6020, 
    mimeType=0x469c9cd7 "text/plain") at kernel/qmime.cpp:134
#30 0x4683ebd1 in KHTMLPartBrowserExtension::updateEditActions() (
    this=0x830cfe0) at khtml_ext.cpp:266
#31 0x4683e671 in KHTMLPartBrowserExtension::setExtensionProxy(KParts::BrowserExtension*) (this=0x830cfe0, proxy=0xfffffe00) at khtml_ext.cpp:174
#32 0x4682b900 in KHTMLPart::slotActiveFrameChanged(KParts::Part*) (
    this=0x830cfe0, part=0x835a978) at khtml_part.cpp:5800
#33 0x4682d90c in KHTMLPart::qt_invoke(int, QUObject*) (this=0x830f6a0, _id=0, 
    _o=0xbfffe130) at khtml_part.moc:504
#34 0x40c4f4ee in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x83067f8, clist=0x84fe4b8, o=0xbfffe130) at kernel/qobject.cpp:2333
#35 0x400479d2 in KParts::PartManager::activePartChanged(KParts::Part*) (
    this=0x83067f8, t0=0xfffffe00) at partmanager.moc:156
#36 0x40047102 in KParts::PartManager::setActivePart(KParts::Part*, QWidget*) (
    this=0x83067f8, part=0x0, widget=0x0) at partmanager.cpp:443
#37 0x46811c7e in ~KHTMLPart (this=0x830f6a0) at khtml_part.cpp:415
#38 0x46815563 in KHTMLPart::clear() (this=0x82c1250) at khtml_part.cpp:1208
#39 0x46811b62 in ~KHTMLPart (this=0x82c1250) at khtml_part.cpp:432
#40 0x4196d723 in ~KonqView (this=0x8393aa8) at konq_view.cc:127
#41 0x41979215 in KonqViewManager::clear() (this=0x812d6f8)
    at konq_viewmgr.cc:914
#42 0x419b7ffa in KonqMainWindow::stayPreloaded() (this=0x8127718)
    at konq_mainwindow.cc:4947
#43 0x419b608c in KonqMainWindow::queryExit() (this=0xfffffe00)
    at konq_mainwindow.cc:4484
#44 0x4052e1c3 in KMainWindow::closeEvent(QCloseEvent*) (this=0x8127718, 
    e=0xbfffe980) at kmainwindow.cpp:582
#45 0x419b5c58 in KonqMainWindow::closeEvent(QCloseEvent*) (this=0x8127718, 
    e=0xbfffe980) at konq_mainwindow.cc:4472
#46 0x40c9220c in QWidget::event(QEvent*) (this=0x8127718, e=0xbfffe980)
    at kernel/qwidget.cpp:4542
#47 0x40d7534c in QMainWindow::event(QEvent*) (this=0x8127718, e=0xbfffe980)
    at widgets/qmainwindow.cpp:1669
#48 0x419b7ef9 in KonqMainWindow::event(QEvent*) (this=0x8127718, e=0xbfffe980)
    at konq_mainwindow.cc:4933
#49 0x40bddb95 in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbfffef60, receiver=0x8127718, e=0xbfffe980)
    at kernel/qapplication.cpp:2582
#50 0x40bdd807 in QApplication::notify(QObject*, QEvent*) (this=0xbfffef60, 
    receiver=0x8127718, e=0xbfffe980) at kernel/qapplication.cpp:2470
#51 0x4072bab9 in KApplication::notify(QObject*, QEvent*) (this=0xbfffef60, 
    receiver=0x8127718, event=0xbfffe980) at kapplication.cpp:509
#52 0x40048c2d in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0xfffffe00, event=0x0) at qapplication.h:492
#53 0x40c91638 in QWidget::close(bool) (this=0x8127718, alsoDelete=false)
    at kernel/qwidget.cpp:4054
#54 0x40b61287 in QETWidget::translateCloseEvent(_XEvent const*) (
    this=0x8127718) at kernel/qapplication_x11.cpp:5695
#55 0x40b5abf5 in QApplication::x11ClientMessage(QWidget*, _XEvent*, bool) (
    this=0xbfffef60, w=0x8127718, event=0xbfffec80, passive_only=false)
    at kernel/qapplication_x11.cpp:3070
#56 0x40b5c6f5 in QApplication::x11ProcessEvent(_XEvent*) (this=0xbfffef60, 
    event=0xbfffec80) at kernel/qapplication_x11.cpp:3713
#57 0x40b78b5b in QEventLoop::processEvents(unsigned) (this=0x80e1570, flags=4)
    at kernel/qeventloop_x11.cpp:192
#58 0x40bf70e1 in QEventLoop::enterLoop() (this=0x80e1570)
    at kernel/qeventloop.cpp:198
#59 0x40bf6ffa in QEventLoop::exec() (this=0x80e1570)
    at kernel/qeventloop.cpp:145
#60 0x40bddd53 in QApplication::exec() (this=0xbfffef60)
    at kernel/qapplication.cpp:2705
#61 0x4195e5a6 in kdemain (argc=-512, argv=0xfffffe00) at konq_main.cc:177
#62 0x408b18f6 in kdeinitmain (argc=-512, argv=0xfffffe00)
    at konqueror_dummy.cc:2
#63 0x0804e7b1 in launch (argc=2, _name=0x8062b7c "konqueror", 
    args=0x408b18d0 "U\211?203?030\213U\f\211]?\201?\022", cwd=0x0, 
    envc=1, envs=0xbffff0b0 "@y#A", reset_env=false, tty=0x0, 
    avoid_loops=false, 
    startup_id_str=0xfffffe00 <Address 0xfffffe00 out of bounds>)
    at kinit.cpp:604
#64 0x080507a6 in handle_launcher_request (sock=8) at kinit.cpp:1167
#65 0x0804f548 in handle_requests (waitForPid=0) at kinit.cpp:1360
#66 0x0804d4f6 in main (argc=3, argv=0xbffff584, envp=0xfffffe00)
    at kinit.cpp:1797
#67 0x4150d90c in __libc_start_main () from /lib/libc.so.6
Comment 4 Thiago Macieira 2003-12-15 00:10:45 UTC
Out of the long valgrind log (thanks for being thorough!), this is probably the interesting part:

==3797== Invalid read of size 4
==3797==    at 0x55400CA0: KHTMLPart::~KHTMLPart() (khtml_part.cpp:415)
==3797==    by 0x403BF81A: KParts::Part::slotWidgetDestroyed() (part.cpp:267)
==3797==    by 0x403C1669: KParts::Part::qt_invoke(int, QUObject*) (part.moc:108)
==3797==    by 0x403C1ACA: KParts::ReadOnlyPart::qt_invoke(int, QUObject*) (part.moc:261)
==3797==    by 0x5541CCA2: KHTMLPart::qt_invoke(int, QUObject*) (khtml_part.moc:531)
==3797==    by 0x40FD2627: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2357)
==3797==    by 0x40FD2345: QObject::activate_signal(int) (qobject.cpp:2302)
==3797==    by 0x413A2533: QObject::destroyed() (moc_qobject.cpp:102)
==3797==    by 0x40FCE8DB: QObject::~QObject() (qobject.cpp:446)
==3797==    by 0x4100E5C7: QWidget::~QWidget() (qwidget.cpp:933)
==3797==    by 0x40368277: QFrame::~QFrame() (konq_iconviewwidget.cc:63)
==3797==    by 0x4111D537: QScrollView::~QScrollView() (qscrollview.cpp:635)
==3797==    by 0x553EBBA2: KHTMLView::~KHTMLView() (khtmlview.cpp:350)
==3797==    by 0x40FCF819: QObject::event(QEvent*) (qobject.cpp:750)
==3797==    by 0x41014D04: QWidget::event(QEvent*) (qwidget.cpp:4408)
==3797==    by 0x40F60B94: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2582)
==3797==    by 0x40F60806: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2470)
==3797==    by 0x40AAEAB8: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:509)
==3797==    by 0x402A2ABC: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:492)
==3797==    by 0x40F61CA9: QApplication::sendPostedEvents(QObject*, int) (qapplication.cpp:3204)
==3797==    by 0x40F61A5F: QApplication::sendPostedEvents() (qapplication.cpp:3115)
==3797==    by 0x40EFBA7F: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:144)
==3797==    by 0x40EEBA56: qt_xclb_wait_for_event(_XDisplay*, unsigned long, int, _XEvent*, int) (qclipboard_x11.cpp:479)
==3797==    by 0x40EEEA88: QClipboardWatcher::getDataInFormat(unsigned long) const (qclipboard_x11.cpp:1381)
==3797==    by 0x40EEDFD9: QClipboardWatcher::format(int) const (qclipboard_x11.cpp:1249)
==3797==    by 0x40FC0BC7: QMimeSource::provides(char const*) const (qmime.cpp:134)
==3797==    by 0x5542DBD0: KHTMLPartBrowserExtension::updateEditActions() (khtml_ext.cpp:266)
==3797==    by 0x5542D670: KHTMLPartBrowserExtension::setExtensionProxy(KParts::BrowserExtension*) (khtml_ext.cpp:174)
==3797==    by 0x5541A8FF: KHTMLPart::slotActiveFrameChanged(KParts::Part*) (khtml_part.cpp:5800)
==3797==    by 0x5541C90B: KHTMLPart::qt_invoke(int, QUObject*) (khtml_part.moc:504)
==3797==    by 0x40FD24ED: QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2333)
==3797==    by 0x403C99D1: KParts::PartManager::activePartChanged(KParts::Part*) (partmanager.moc:156)
==3797==    by 0x403C9101: KParts::PartManager::setActivePart(KParts::Part*, QWidget*) (partmanager.cpp:443)
==3797==    by 0x55400C7D: KHTMLPart::~KHTMLPart() (khtml_part.cpp:415)
==3797==    by 0x55404562: KHTMLPart::clear() (khtml_part.cpp:1208)
==3797==    by 0x55400B61: KHTMLPart::~KHTMLPart() (khtml_part.cpp:432)
==3797==    by 0x4029C722: KonqView::~KonqView() (konq_view.cc:127)
==3797==    by 0x402A8214: KonqViewManager::clear() (konq_viewmgr.cc:914)
==3797==    by 0x402E6FF9: KonqMainWindow::stayPreloaded() (konq_mainwindow.cc:4947)
==3797==    by 0x402E508B: KonqMainWindow::queryExit() (konq_mainwindow.cc:4484)
==3797==    by 0x408B11C2: KMainWindow::closeEvent(QCloseEvent*) (kmainwindow.cpp:582)
==3797==    by 0x402E4C57: KonqMainWindow::closeEvent(QCloseEvent*) (konq_mainwindow.cc:4472)
==3797==    by 0x4101520B: QWidget::event(QEvent*) (qwidget.cpp:4542)
==3797==    by 0x410F834B: QMainWindow::event(QEvent*) (qmainwindow.cpp:1669)
==3797==    by 0x402E6EF8: KonqMainWindow::event(QEvent*) (konq_mainwindow.cc:4933)
==3797==    by 0x40F60B94: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2582)
==3797==    by 0x40F60806: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2470)
==3797==    by 0x40AAEAB8: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:509)
==3797==    by 0x402A2ABC: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:492)
==3797==    by 0x41014637: QWidget::close(bool) (qwidget.cpp:4054)
==3797==    Address 0x53D8A81C is 40 bytes inside a block of size 208 free'd
==3797==    at 0x40029DF1: __builtin_delete (in /usr/lib/valgrind/vgskin_memcheck.so)
==3797==    by 0x40029E1C: operator delete(void*) (in /usr/lib/valgrind/vgskin_memcheck.so)
==3797==    by 0x4083C13C: KPopupMenu::~KPopupMenu() (kpopupmenu.cpp:177)
==3797==    by 0x55400CAB: KHTMLPart::~KHTMLPart() (khtml_part.cpp:415)
==3797==    by 0x55404562: KHTMLPart::clear() (khtml_part.cpp:1208)
==3797==    by 0x55400B61: KHTMLPart::~KHTMLPart() (khtml_part.cpp:432)
==3797==    by 0x4029C722: KonqView::~KonqView() (konq_view.cc:127)
==3797==    by 0x402A8214: KonqViewManager::clear() (konq_viewmgr.cc:914)
==3797==    by 0x402E6FF9: KonqMainWindow::stayPreloaded() (konq_mainwindow.cc:4947)
==3797==    by 0x402E508B: KonqMainWindow::queryExit() (konq_mainwindow.cc:4484)
==3797==    by 0x408B11C2: KMainWindow::closeEvent(QCloseEvent*) (kmainwindow.cpp:582)
==3797==    by 0x402E4C57: KonqMainWindow::closeEvent(QCloseEvent*) (konq_mainwindow.cc:4472)
==3797==    by 0x4101520B: QWidget::event(QEvent*) (qwidget.cpp:4542)
==3797==    by 0x410F834B: QMainWindow::event(QEvent*) (qmainwindow.cpp:1669)
==3797==    by 0x402E6EF8: KonqMainWindow::event(QEvent*) (konq_mainwindow.cc:4933)
==3797==    by 0x40F60B94: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2582)
==3797==    by 0x40F60806: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2470)
==3797==    by 0x40AAEAB8: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:509)
==3797==    by 0x402A2ABC: QApplication::sendEvent(QObject*, QEvent*) (qapplication.h:492)
==3797==    by 0x41014637: QWidget::close(bool) (qwidget.cpp:4054)
==3797==    by 0x40EE4286: QETWidget::translateCloseEvent(_XEvent const*) (qapplication_x11.cpp:5695)
==3797==    by 0x40EDDBF4: QApplication::x11ClientMessage(QWidget*, _XEvent*, bool) (qapplication_x11.cpp:3070)
==3797==    by 0x40EDF6F4: QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3713)
==3797==    by 0x40EFBB5A: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:192)
==3797==    by 0x40F7A0E0: QEventLoop::enterLoop() (qeventloop.cpp:198)
==3797==    by 0x40F79FF9: QEventLoop::exec() (qeventloop.cpp:145)
==3797==    by 0x40F60D52: QApplication::exec() (qapplication.cpp:2705)
==3797==    by 0x4028D5A5: kdemain (konq_main.cc:177)
==3797==    by 0x804861A: main (konqueror.la.cc:2)
==3797==    by 0x4186B90B: __libc_start_main (in /lib/libc-2.3.2.so)
==3797==    by 0x8048560: (within /usr/kde/3.2/bin/konqueror)
Comment 5 Thiago Macieira 2003-12-15 00:11:48 UTC
*** Bug 70422 has been marked as a duplicate of this bug. ***
Comment 6 Thiago Macieira 2003-12-15 15:29:29 UTC
*** Bug 70468 has been marked as a duplicate of this bug. ***
Comment 7 Thiago Macieira 2003-12-15 15:37:14 UTC
I can't reproduce the bug using the same instructions, but I can reproduce it. I went to the page, typed a letter in the identification input and closed Konqueror. The crash happened at the exact same line in part.cpp:

void Part::slotWidgetDestroyed()
{
  kdDebug(1000) << "KPart::slotWidgetDestroyed(), deleting part " << name() << endl;
  m_widget = 0;
  delete this; <=== crash happens on this line
}

The valgrind log seems to indicate a double deletion of the KPart.
Comment 8 Thiago Macieira 2003-12-15 15:53:17 UTC
My own valgrind, with line numbers respective of CVS HEAD 20031214 (yesterday morning). According to the stacktrace at the moment of the crash, it would seem the part had already been deleted, but it still received the QObject::destroyed signal.

I could be wrong, but it seems like a Qt bug. Any further opinions?

==922645== Invalid read of size 4
==922645==    at 0x49CC5857: KHTMLPart::~KHTMLPart() (khtml_part.cpp:406)
==922645==    by 0x4034DD66: KParts::Part::slotWidgetDestroyed() (part.cpp:267)
==922645==    by 0x4034FA7F: KParts::Part::qt_invoke(int, QUObject*) (part.moc:108)
==922645==    by 0x4034FDA6: KParts::ReadOnlyPart::qt_invoke(int, QUObject*) (part.moc:261)
==922645==    by 0x49CE0288: KHTMLPart::qt_invoke(int, QUObject*) (khtml_part.moc:531)
==922645==    by 0x40D72D86: QObject::activate_signal(QConnectionList*, QUObject*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40D72C04: QObject::activate_signal(int) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x4109CFAB: QObject::destroyed() (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40D6FEC9: QObject::~QObject() (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40DA432D: QWidget::~QWidget() (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40E87C5A: QScrollView::~QScrollView() (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x49CB31EC: KHTMLView::~KHTMLView() (qstring.h:848)
==922645==    by 0x40D70AC0: QObject::event(QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40DA97B9: QWidget::event(QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40D156E8: QApplication::internalNotify(QObject*, QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40D14D17: QApplication::notify(QObject*, QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x409221E1: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:509)
==922645==    by 0x40D16551: QApplication::sendPostedEvents(QObject*, int) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40D163DF: QApplication::sendPostedEvents() (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40CBFE74: QEventLoop::processEvents(unsigned) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    Address 0x48703760 is 0 bytes inside a block of size 208 free'd
==922645==    at 0x401629DF: __builtin_delete (in /usr/lib/valgrind/valgrind.so)
==922645==    by 0x401629FD: operator delete(void*) (in /usr/lib/valgrind/valgrind.so)
==922645==    by 0x4072A85E: KPopupMenu::~KPopupMenu() (kpopupmenu.cpp:177)
==922645==    by 0x49CC585C: KHTMLPart::~KHTMLPart() (khtml_part.cpp:406)
==922645==    by 0x49CC900C: KHTMLPart::clear() (qguardedptr.h:186)
==922645==    by 0x49CC5938: KHTMLPart::~KHTMLPart() (khtml_part.cpp:431)
==922645==    by 0x40256EDB: KonqView::~KonqView() (konq_view.cc:127)
==922645==    by 0x40262457: KonqViewManager::clear() (qptrlist.h:174)
==922645==    by 0x4029DBD4: KonqMainWindow::stayPreloaded() (konq_mainwindow.h:127)
==922645==    by 0x4029B4C1: KonqMainWindow::queryExit() (konq_mainwindow.cc:4484)
==922645==    by 0x4078427A: KMainWindow::closeEvent(QCloseEvent*) (kmainwindow.cpp:582)
==922645==    by 0x4029B3A3: KonqMainWindow::closeEvent(QCloseEvent*) (konq_mainwindow.cc:4472)
==922645==    by 0x40DA9980: QWidget::event(QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40E6BF66: QMainWindow::event(QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x4029DB25: KonqMainWindow::event(QEvent*) (konq_mainwindow.cc:4933)
==922645==    by 0x40D156E8: QApplication::internalNotify(QObject*, QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40D14D17: QApplication::notify(QObject*, QEvent*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x409221E1: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:509)
==922645==    by 0x40DA92AC: QWidget::close(bool) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
==922645==    by 0x40CAF8FF: QETWidget::translateCloseEvent(_XEvent const*) (in /home/thiago/programs/obj-linux/kde/qt-copy/lib/libqt-mt.so.3.2.3)
Comment 9 Stephan Kulow 2004-01-12 17:33:19 UTC
*** Bug 72482 has been marked as a duplicate of this bug. ***
Comment 10 Waldo Bastian 2004-01-12 18:37:35 UTC
Subject: QClipboard causes unexpected recursion leading to crashes

QClipboard triggers the eventloop which causes unexpected recursion leading to 
crashes such as http://bugs.kde.org/show_bug.cgi?id=70430 

Although an attempt was made to stop the recursion somewhat by excluding 
several events (see below), this isn't enough.

qclipboard_x11.cpp:479
       qApp->eventLoop()->processEvents( QEventLoop::ExcludeUserInput |
                                          QEventLoop::ExcludeSocketNotifiers |
                                          QEventLoop::WaitForMore | 0x08 );

In particular, posted events such as DeferredDelete are still being processed 
due to processEvents() calling QApplication::sendPostedEvents()

Cheers,
Waldo
Comment 11 Waldo Bastian 2004-02-18 15:42:38 UTC

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