[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kfm-devel
Subject:    recent khtml regression
From:       David Faure <faure () kde ! org>
Date:       2006-12-18 13:42:49
Message-ID: 200612181442.49634.faure () kde ! org
[Download RAW message or body]

khtml now crashes when I try to log in on www.voyages-sncf.com (by pressing Enter).
Valgrind trace below.
Basically, the lineedit gets deleted by a DeferredDelete event executed while the \
dialog box asking whether to save the form contents in kwallet is up. Seems obvious, \
but then I wonder why it didn't happen before. Sounds like some event handling code \
is still being executed in the deleted node after the whole page was deleted. Anyone \
changed event handling recently?

==19957==
==19957== Invalid read of size 4
==19957==    at 0x5020A86: QLineEdit::selectedText() const (qlineedit.cpp:973)
==19957==    by 0x478D08E: KLineEdit::keyPressEvent(QKeyEvent*) (klineedit.cpp:809)
==19957==    by 0x7481E84: khtml::RenderWidget::EventPropagator::sendEvent(QEvent*) \
(render_replaced.cpp:711) ==19957==    by 0x7482A93: \
khtml::RenderWidget::handleEvent(DOM::EventImpl const&) (render_replaced.cpp:858) \
==19957==    by 0x740E82A: \
DOM::HTMLGenericFormElementImpl::defaultEventHandler(DOM::EventImpl*) \
(html_formimpl.cpp:994) ==19957==    by 0x74173B7: \
DOM::HTMLInputElementImpl::defaultEventHandler(DOM::EventImpl*) \
(html_formimpl.cpp:1805) ==19957==    by 0x73C6336: \
DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:398) \
==19957==    by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) \
(dom_nodeimpl.cpp:342) ==19957==    by 0x73C52B7: \
DOM::NodeImpl::dispatchKeyEvent(QKeyEvent*, bool) (dom_nodeimpl.cpp:578) ==19957==    \
by 0x7347228: KHTMLView::dispatchKeyEventHelper(QKeyEvent*, bool) \
(khtmlview.cpp:1380) ==19957==    by 0x7347332: \
KHTMLView::dispatchKeyEvent(QKeyEvent*) (khtmlview.cpp:1336) ==19957==    by \
0x734C2FF: KHTMLView::keyPressEvent(QKeyEvent*) (khtmlview.cpp:1465) ==19957==    by \
0x73465C2: KHTMLView::eventFilter(QObject*, QEvent*) (khtmlview.cpp:1924) ==19957==   \
by 0x4F45CC5: QObject::activate_filters(QEvent*) (qobject.cpp:903) ==19957==    by \
0x4F45D43: QObject::event(QEvent*) (qobject.cpp:735) ==19957==    by 0x4F8323B: \
QWidget::event(QEvent*) (qwidget.cpp:4659) ==19957==    by 0x5028D62: \
QLineEdit::event(QEvent*) (qlineedit.cpp:1412) ==19957==    by 0x748E03F: \
khtml::LineEditWidget::event(QEvent*) (render_form.cpp:419) ==19957==    by \
0x4EDF07F: QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2635) \
==19957==    by 0x4EDF411: QApplication::notify(QObject*, QEvent*) \
(qapplication.cpp:2392) ==19957==    by 0x4A433A6: KApplication::notify(QObject*, \
QEvent*) (kapplication.cpp:550) ==19957==    by 0x4E70F54: \
QApplication::sendSpontaneousEvent(QObject*, QEvent*) (qapplication.h:499) ==19957==  \
by 0x4E652E4: QETWidget::translateKeyEvent(_XEvent const*, bool) \
(qapplication_x11.cpp:5501) ==19957==    by 0x4E6B267: \
QApplication::x11ProcessEvent(_XEvent*) (qapplication_x11.cpp:3488) ==19957==    by \
0x4E841D2: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:192) ==19957==    \
by 0x4EF75FA: QEventLoop::enterLoop() (qeventloop.cpp:198) ==19957==    by 0x4EF751D: \
QEventLoop::exec() (qeventloop.cpp:145) ==19957==    by 0x4EDDD12: \
QApplication::exec() (qapplication.cpp:2758) ==19957==    by 0x408986F: kdemain \
(konq_main.cc:206) ==19957==    by 0x8048691: main (kdeinit_konqueror.cpp:2)
==19957==  Address 0x623F59C is 148 bytes inside a block of size 204 free'd
==19957==    at 0x4020CC7: operator delete(void*) (vg_replace_malloc.c:244)
==19957==    by 0x748E811: khtml::LineEditWidget::~LineEditWidget() \
(render_form.cpp:322) ==19957==    by 0x4F45DE1: QObject::event(QEvent*) \
(qobject.cpp:750) ==19957==    by 0x4F8323B: QWidget::event(QEvent*) \
(qwidget.cpp:4659) ==19957==    by 0x5028D62: QLineEdit::event(QEvent*) \
(qlineedit.cpp:1412) ==19957==    by 0x748E03F: khtml::LineEditWidget::event(QEvent*) \
(render_form.cpp:419) ==19957==    by 0x4EDF07F: \
QApplication::internalNotify(QObject*, QEvent*) (qapplication.cpp:2635) ==19957==    \
by 0x4EDFB72: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:2523) \
==19957==    by 0x4A433A6: KApplication::notify(QObject*, QEvent*) \
(kapplication.cpp:550) ==19957==    by 0x40A4BD2: QApplication::sendEvent(QObject*, \
QEvent*) (qapplication.h:496) ==19957==    by 0x4EE031E: \
QApplication::sendPostedEvents(QObject*, int) (qapplication.cpp:3270) ==19957==    by \
0x4EE0425: QApplication::sendPostedEvents() (qapplication.cpp:3181) ==19957==    by \
0x4E84122: QEventLoop::processEvents(unsigned) (qeventloop_x11.cpp:144) ==19957==    \
by 0x4EF75FA: QEventLoop::enterLoop() (qeventloop.cpp:198) ==19957==    by 0x4EDDD3E: \
QApplication::enter_loop() (qapplication.cpp:2793) ==19957==    by 0x50FB8AF: \
QDialog::exec() (qdialog.cpp:432) ==19957==    by 0x481F193: \
KMessageBox::createKMessageBox(KDialogBase*, QPixmap, QString const&, QStringList \
const&, QString const&, bool*, int, QString const&, QMessageBox::Icon) \
(kmessagebox.cpp:309) ==19957==    by 0x481F55C: \
KMessageBox::createKMessageBox(KDialogBase*, QMessageBox::Icon, QString const&, \
QStringList const&, QString const&, bool*, int, QString const&) (kmessagebox.cpp:146) \
==19957==    by 0x74169F5: DOM::HTMLFormElementImpl::submit() (html_formimpl.cpp:628) \
==19957==    by 0x7416EF2: DOM::HTMLFormElementImpl::prepareSubmit() \
(html_formimpl.cpp:553) ==19957==    by 0x7416F73: \
DOM::HTMLInputElementImpl::activate() (html_formimpl.cpp:1819) ==19957==    by \
0x74173A5: DOM::HTMLInputElementImpl::defaultEventHandler(DOM::EventImpl*) \
(html_formimpl.cpp:1802) ==19957==    by 0x73C6336: \
DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:398) \
==19957==    by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) \
(dom_nodeimpl.cpp:342) ==19957==    by 0x73C6029: DOM::NodeImpl::dispatchUIEvent(int, \
int) (dom_nodeimpl.cpp:550) ==19957==    by 0x73C6409: \
DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:402) \
==19957==    by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) \
(dom_nodeimpl.cpp:342) ==19957==    by 0x73C6A05: \
DOM::NodeImpl::dispatchMouseEvent(QMouseEvent*, int, int) (dom_nodeimpl.cpp:532) \
==19957==    by 0x740E61A: DOM::HTMLInputElementImpl::click() \
(html_formimpl.cpp:1372) ==19957==    by 0x74176A3: \
DOM::HTMLFormElementImpl::submitFromKeyboard() (html_formimpl.cpp:488) ==19957==    \
by 0x748DF12: khtml::RenderLineEdit::slotReturnPressed() (render_form.cpp:506) \
==19957==    by 0x748DF5D: khtml::RenderLineEdit::qt_invoke(int, QUObject*) \
(render_form.moc:330) ==19957==    by 0x4F48B7C: \
QObject::activate_signal(QConnectionList*, QUObject*) (qobject.cpp:2356) ==19957==    \
by 0x4F49617: QObject::activate_signal(int) (qobject.cpp:2325) ==19957==    by \
0x52F0560: QLineEdit::returnPressed() (moc_qlineedit.cpp:225) ==19957==    by \
0x5029224: QLineEdit::keyPressEvent(QKeyEvent*) (qlineedit.cpp:1543) ==19957==    by \
0x478D07C: KLineEdit::keyPressEvent(QKeyEvent*) (klineedit.cpp:807) ==19957==    by \
0x7481E84: khtml::RenderWidget::EventPropagator::sendEvent(QEvent*) \
(render_replaced.cpp:711) ==19957==    by 0x7482A93: \
khtml::RenderWidget::handleEvent(DOM::EventImpl const&) (render_replaced.cpp:858) \
==19957==    by 0x740E82A: \
DOM::HTMLGenericFormElementImpl::defaultEventHandler(DOM::EventImpl*) \
(html_formimpl.cpp:994) ==19957==    by 0x74173B7: \
DOM::HTMLInputElementImpl::defaultEventHandler(DOM::EventImpl*) \
(html_formimpl.cpp:1805) ==19957==    by 0x73C6336: \
DOM::NodeImpl::dispatchGenericEvent(DOM::EventImpl*, int&) (dom_nodeimpl.cpp:398) \
==19957==    by 0x73C4B1A: DOM::NodeImpl::dispatchEvent(DOM::EventImpl*, int&, bool) \
(dom_nodeimpl.cpp:342) ==19957==    by 0x73C52B7: \
DOM::NodeImpl::dispatchKeyEvent(QKeyEvent*, bool) (dom_nodeimpl.cpp:578) ==19957==    \
by 0x7347228: KHTMLView::dispatchKeyEventHelper(QKeyEvent*, bool) \
(khtmlview.cpp:1380) ==19957==    by 0x7347332: \
KHTMLView::dispatchKeyEvent(QKeyEvent*) (khtmlview.cpp:1336) ==19957==    by \
0x734C2FF: KHTMLView::keyPressEvent(QKeyEvent*) (khtmlview.cpp:1465) ==19957==    by \
0x73465C2: KHTMLView::eventFilter(QObject*, QEvent*) (khtmlview.cpp:1924) ==19957==   \
by 0x4F45CC5: QObject::activate_filters(QEvent*) (qobject.cpp:903) ==19957==    by \
0x4F45D43: QObject::event(QEvent*) (qobject.cpp:735)

-- 
David Faure, faure@kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic