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

List:       kfm-devel
Subject:    Re: Bug#45265: closing terminal emulation crashes konqueror
From:       Waldo Bastian <bastian () kde ! org>
Date:       2002-07-17 0:13:04
[Download RAW message or body]

On Monday 15 July 2002 03:10 pm, jochen@puchalla-online.de wrote:
> Here's the backtrace:

Is this a problem in Konqy/KParts? It looks like the when the KPart gets 
deleted, the KonqViewManager first deletes the view which then triggers 
another deletion of the KPart and by the time the first attempt to delete the 
KPart is about to finalize it has already been deleted underneath it.

Valgrind says:

==5476== Invalid read of size 4
==5476==    at 0x4037C9C3: KParts::Part::~Part(void) 
(/ext/cvs/qt3-copy/include/qguardedptr.h:130)
==5476==    by 0x4037D3B7: KParts::ReadOnlyPart::~ReadOnlyPart(void) 
(part.cpp:296)
==5476==    by 0x4CDF8554: konsolePart::~konsolePart(void) 
(konsole_part.cpp:267)
==5476==    by 0x4CDF8172: konsolePart::sessionDestroyed(void) 
(konsole_part.cpp:245)
==5476==    by 0x4CE01E4F: konsolePart::qt_invoke(int, QUObject *) 
(konsole_part.moc:226)
==5476==    by 0x40D8F2D2: QObject::activate_signal(QConnectionList *, 
QUObject *) (kernel/qobject.cpp:2080)
==5476==    by 0x40D8F183: QObject::activate_signal(int) 
(kernel/qobject.cpp:2061)
==5476==    by 0x41015026: QObject::destroyed(void) 
(.moc/debug-mt/moc_qobject.cpp:101)
==5476==    by 0x40D8C61F: QObject::~QObject(void) (kernel/qobject.cpp:388)
==5476==    by 0x4CE06744: TESession::~TESession(void) (session.cpp:179)
==5476==    by 0x4CE06888: TESession::terminate(void) (session.cpp:199)
==5476==    by 0x4CDF801D: konsolePart::doneSession(TESession *, int) 
(konsole_part.cpp:236)
==5476==    by 0x4CE01E41: konsolePart::qt_invoke(int, QUObject *) 
(konsole_part.moc:225)
==5476==    by 0x40D8F2D2: QObject::activate_signal(QConnectionList *, 
QUObject *) (kernel/qobject.cpp:2080)
==5476==    by 0x4CE070F2: TESession::done(TESession *, int) (session.moc:144)
==5476==    by 0x4CE06854: TESession::done(int) (session.cpp:194)
==5476==    by 0x4CE07470: TESession::qt_invoke(int, QUObject *) 
(session.moc:203)
==5476==    by 0x40D8F2D2: QObject::activate_signal(QConnectionList *, 
QUObject *) (kernel/qobject.cpp:2080)
==5476==    by 0x40D8F4A2: QObject::activate_signal(int, int) 
(kernel/qobject.cpp:2130)
==5476==    by 0x4CDF3BAD: TEPty::done(int) (TEPty.moc:119)
==5476==    by 0x4CDF415A: TEPty::donePty(void) (TEPty.cpp:281)
==5476==    by 0x4CDF3D59: TEPty::qt_invoke(int, QUObject *) (TEPty.moc:146)
==5476==    by 0x40D8F2D2: QObject::activate_signal(QConnectionList *, 
QUObject *) (kernel/qobject.cpp:2080)
==5476==    by 0x409B7F85: KProcess::processExited(KProcess *) 
(kprocess.moc:136)
==5476==    by 0x409B6F9A: KProcess::processHasExited(int) (kprocess.cpp:576)


==5476==    Address 0x48DEBB94 is 56 bytes inside a block of size 292 free'd
==5476==    at 0x40044F32: __builtin_delete (vg_clientfuncs.c:186)
==5476==    by 0x4037CCEC: KParts::Part::~Part(void) (part.cpp:155)
==5476==    by 0x4037D260: KParts::Part::slotWidgetDestroyed(void) 
(part.cpp:260)
==5476==    by 0x4037ECFE: KParts::Part::qt_invoke(int, QUObject *) 
(part.moc:110)
==5476==    by 0x40D8F3AA: QObject::activate_signal(QConnectionList *, 
QUObject *) (kernel/qobject.cpp:2090)
==5476==    by 0x40D8F183: QObject::activate_signal(int) 
(kernel/qobject.cpp:2061)
==5476==    by 0x41015026: QObject::destroyed(void) 
(.moc/debug-mt/moc_qobject.cpp:101)
==5476==    by 0x40D8C61F: QObject::~QObject(void) (kernel/qobject.cpp:388)
==5476==    by 0x40DB77D1: QWidget::~QWidget(void) (kernel/qwidget.cpp:878)
==5476==    by 0x4CE07E0E: TEWidget::~TEWidget(void) (TEWidget.cpp:308)
==5476==    by 0x40DB7718: QWidget::~QWidget(void) (kernel/qwidget.cpp:868)
==5476==    by 0x402B1340: KonqFrame::~KonqFrame(void) (konq_frame.cc:381)
==5476==    by 0x402A675C: KonqViewManager::removeView(KonqView *) 
(konq_viewmgr.cc:267)
==5476==    by 0x402A7440: KonqViewManager::removePart(KParts::Part *) 
(konq_viewmgr.cc:328)
==5476==    by 0x4037C9BD: KParts::Part::~Part(void) (part.cpp:143)
==5476==    by 0x4037D3B7: KParts::ReadOnlyPart::~ReadOnlyPart(void) 
(part.cpp:296)
==5476==    by 0x4CDF8554: konsolePart::~konsolePart(void) 
(konsole_part.cpp:267)
==5476==    by 0x4CDF8172: konsolePart::sessionDestroyed(void) 
(konsole_part.cpp:245)
==5476==    by 0x4CE01E4F: konsolePart::qt_invoke(int, QUObject *) 
(konsole_part.moc:226)
==5476==    by 0x40D8F2D2: QObject::activate_signal(QConnectionList *, 
QUObject *) (kernel/qobject.cpp:2080)
==5476==    by 0x40D8F183: QObject::activate_signal(int) 
(kernel/qobject.cpp:2061)
==5476==    by 0x41015026: QObject::destroyed(void) 
(.moc/debug-mt/moc_qobject.cpp:101)
==5476==    by 0x40D8C61F: QObject::~QObject(void) (kernel/qobject.cpp:388)
==5476==    by 0x4CE06744: TESession::~TESession(void) (session.cpp:179)
==5476==    by 0x4CE06888: TESession::terminate(void) (session.cpp:199)


-- 
bastian@kde.org  |   SuSE Labs KDE Developer  |  bastian@suse.com

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

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