Bug 59062 - Konqueror crashed when I set 'show hidden files', switched to tree view, expanded .kde dir to at least 3 levels(not entering it), and unset the 'show hidden files'
Summary: Konqueror crashed when I set 'show hidden files', switched to tree view, expa...
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Mandrake RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-05-28 02:38 UTC by Yang Dehua
Modified: 2003-05-28 10:48 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yang Dehua 2003-05-28 02:38:43 UTC
Version:            (using KDE KDE 3.1.2)
Installed from:    Mandrake RPMs
OS:          Linux

open konqueror, turn on 'show hidden files',switch to tree view. Descend into a hidden directory (for me it was .kde/share/config/) without entering it (just clicking the '+' ) then unset 'show hidden files'--The Konqueror crashed.
Comment 1 Maksim Orlovich 2003-05-28 02:57:30 UTC
  0x40aed79e in KURL::cmp(KURL const&, bool) const () 
   from /opt/kde3/lib/libkdecore.so.4 
#5  0x41a5b8b8 in KonqTreeViewWidget::removeSubDir(KURL const&) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#6  0x41a5cf02 in KonqTreeViewWidget::slotDeleteItem(KFileItem*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#7  0x41a58ffa in KonqBaseListViewWidget::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#8  0x41a5d253 in KonqTreeViewWidget::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#9  0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#10 0x4062ea55 in KDirLister::deleteItem(KFileItem*) () 
   from /opt/kde3/lib/libkio.so.4 
#11 0x4062c84a in KDirLister::emitChanges() () from /opt/kde3/lib/libkio.so.4 
#12 0x41a4d379 in KonqListView::slotShowDot() () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#13 0x41a4fd9e in KonqListView::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#14 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#15 0x40e70a84 in QObject::activate_signal(int) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#16 0x4084ebeb in KAction::activated() () from /opt/kde3/lib/libkdeui.so.4 
#17 0x40857d1e in KToggleAction::slotActivated() () 
   from /opt/kde3/lib/libkdeui.so.4 
#18 0x408613ff in KToggleAction::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/libkdeui.so.4 
#19 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#20 0x41185092 in QSignal::signal(QVariant const&) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#21 0x40e8a758 in QSignal::activate() () from /usr/lib/qt3/lib/libqt-mt.so.3 
#22 0x40f6e3fd in QPopupMenu::mouseReleaseEvent(QMouseEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#23 0x40ea4e3c in QWidget::event(QEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#24 0x40e173d7 in QApplication::internalNotify(QObject*, QEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#25 0x40e16b13 in QApplication::notify(QObject*, QEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#26 0x40a5ebf9 in KApplication::notify(QObject*, QEvent*) () 
   from /opt/kde3/lib/libkdecore.so.4 
#27 0x40db386d in QETWidget::translateMouseEvent(_XEvent const*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#28 0x40db1424 in QApplication::x11ProcessEvent(_XEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#29 0x40dc6811 in QEventLoop::processEvents(unsigned) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#30 0x40e2a576 in QEventLoop::enterLoop() () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#31 0x40e2a418 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 
#32 0x40e17621 in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 
#33 0x417c1222 in kdemain () from /opt/kde3/lib/konqueror.so 
#34 0x0804cc66 in launch(int, char const*, char const*, char const*, int, char 
const*, bool, char const*, bool, char const*) () 
#35 0x0804d8a9 in handle_launcher_request(int) () 
#36 0x0804dd7c in handle_requests(int) () 
#37 0x0804ea9a in main () 
#38 0x41544a17 in __libc_start_main () from /lib/i686/libc.so.6 
 
Comment 2 Maksim Orlovich 2003-05-28 03:03:07 UTC
I should have said this the first time:  
Thanks a lot for your report, your reproduction instructions are excellent, so this 
report will likely help a great deal in figuring this and related issues out.  
I'll re-paste the backtrace now, in case there are other reports with crash but 
w/o this level of the detail; there is an automatic tool here to search for cases 
like that, but it didn't work the last time since I cut off a few of the 
"non-interesting" things it apparently uses to synchronize. 
 
[New Thread 16384 (LWP 2089)] 
0x413f5727 in waitpid () from /lib/i686/libpthread.so.0 
#0  0x413f5727 in waitpid () from /lib/i686/libpthread.so.0 
#1  0x40ae7c5d in KCrash::defaultCrashHandler(int) () 
   from /opt/kde3/lib/libkdecore.so.4 
#2  0x413f467e in __pthread_sighandler () from /lib/i686/libpthread.so.0 
#3  0x41557688 in __libc_sigaction () from /lib/i686/libc.so.6 
#4  0x40aed79e in KURL::cmp(KURL const&, bool) const () 
   from /opt/kde3/lib/libkdecore.so.4 
#5  0x419a88b8 in KonqTreeViewWidget::removeSubDir(KURL const&) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#6  0x419a9f02 in KonqTreeViewWidget::slotDeleteItem(KFileItem*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#7  0x419a5ffa in KonqBaseListViewWidget::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#8  0x419aa253 in KonqTreeViewWidget::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#9  0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#10 0x4062ea55 in KDirLister::deleteItem(KFileItem*) () 
   from /opt/kde3/lib/libkio.so.4 
#11 0x4062c84a in KDirLister::emitChanges() () from /opt/kde3/lib/libkio.so.4 
#12 0x4199a379 in KonqListView::slotShowDot() () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#13 0x4199cd9e in KonqListView::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/kde3/konq_listview.so 
#14 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#15 0x40e70a84 in QObject::activate_signal(int) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#16 0x4084ebeb in KAction::activated() () from /opt/kde3/lib/libkdeui.so.4 
#17 0x40857d1e in KToggleAction::slotActivated() () 
   from /opt/kde3/lib/libkdeui.so.4 
#18 0x408613ff in KToggleAction::qt_invoke(int, QUObject*) () 
   from /opt/kde3/lib/libkdeui.so.4 
#19 0x40e70c50 in QObject::activate_signal(QConnectionList*, QUObject*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#20 0x41185092 in QSignal::signal(QVariant const&) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#21 0x40e8a758 in QSignal::activate() () from /usr/lib/qt3/lib/libqt-mt.so.3 
#22 0x40f6e3fd in QPopupMenu::mouseReleaseEvent(QMouseEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#23 0x40ea4e3c in QWidget::event(QEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#24 0x40e173d7 in QApplication::internalNotify(QObject*, QEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#25 0x40e16b13 in QApplication::notify(QObject*, QEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#26 0x40a5ebf9 in KApplication::notify(QObject*, QEvent*) () 
   from /opt/kde3/lib/libkdecore.so.4 
#27 0x40db386d in QETWidget::translateMouseEvent(_XEvent const*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#28 0x40db1424 in QApplication::x11ProcessEvent(_XEvent*) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#29 0x40dc6811 in QEventLoop::processEvents(unsigned) () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#30 0x40e2a576 in QEventLoop::enterLoop() () 
   from /usr/lib/qt3/lib/libqt-mt.so.3 
#31 0x40e2a418 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 
#32 0x40e17621 in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3 
#33 0x417c1222 in kdemain () from /opt/kde3/lib/konqueror.so 
#34 0x0804cc66 in launch(int, char const*, char const*, char const*, int, char 
const*, bool, char const*, bool, char const*) () 
#35 0x0804d8a9 in handle_launcher_request(int) () 
#36 0x0804dd7c in handle_requests(int) () 
#37 0x0804ea9a in main () 
#38 0x41544a17 in __libc_start_main () from /lib/i686/libc.so.6 
 
 
 
Comment 3 Maksim Orlovich 2003-05-28 03:23:06 UTC
Zogje: This one might be of interest to you.  
 
==2145== 
==2145== Invalid read of size 4 
==2145==    at 0x46BC689B: KonqTreeViewWidget::removeSubDir(KURL 
const&) (in /code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BC7F01: 
KonqTreeViewWidget::slotDeleteItem(KFileItem*) (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BC3FF9: KonqBaseListViewWidget::qt_invoke(int, 
QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BC8252: KonqTreeViewWidget::qt_invoke(int, QUObject*) 
(in /code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x40D97C4F: QObject::activate_signal(QConnectionList*, 
QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40544A54: KDirLister::deleteItem(KFileItem*) (in 
/code/opt/kde3/lib/libkio.so.4.2.0) 
==2145==    by 0x40542849: KDirLister::emitChanges() (in 
/code/opt/kde3/lib/libkio.so.4.2.0) 
==2145==    by 0x46BB8378: KonqListView::slotShowDot() (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BBAD9D: KonqListView::qt_invoke(int, QUObject*) (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x40D97C4F: QObject::activate_signal(QConnectionList*, 
QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D97A83: QObject::activate_signal(int) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40764BEA: KAction::activated() (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x4076DD1D: KToggleAction::slotActivated() (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x407773FE: KToggleAction::qt_invoke(int, QUObject*) (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x40D97C4F: QObject::activate_signal(QConnectionList*, 
QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x410AC091: QSignal::signal(QVariant const&) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40DB1757: QSignal::activate() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40E953FC: 
QPopupMenu::mouseReleaseEvent(QMouseEvent*) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40DCBE3B: QWidget::event(QEvent*) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D3E3D6: QApplication::internalNotify(QObject*, QEvent*) 
(in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D3DB12: QApplication::notify(QObject*, QEvent*) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40975BF8: KApplication::notify(QObject*, QEvent*) (in 
/code/opt/kde3/lib/libkdecore.so.4.2.0) 
==2145==    by 0x40CDA86C: QETWidget::translateMouseEvent(_XEvent 
const*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40CD8423: QApplication::x11ProcessEvent(_XEvent*) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40CED810: QEventLoop::processEvents(unsigned) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D51575: QEventLoop::enterLoop() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D51417: QEventLoop::exec() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D3E620: QApplication::exec() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x4023E221: kdemain (in /code/opt/kde3/lib/konqueror.so) 
==2145==    by 0x80485EA: main (in /code/opt/kde3/bin/konqueror) 
==2145==    by 0x41440A16: __libc_start_main (in /lib/i686/libc-2.3.2.so) 
==2145==    by 0x8048530: ??? (start.S:81) 
==2145==    Address 0x487B0E90 is 52 bytes inside a block of size 64 free'd 
==2145==    at 0x4015E0E8: __builtin_delete (vg_clientfuncs.c:196) 
==2145==    by 0x4015E108: operator delete(void*) (vg_clientfuncs.c:205) 
==2145==    by 0x46BC8E44: KonqListViewDir::~KonqListViewDir() (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x40E6B9D5: QListViewItem::~QListViewItem() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x407927D9: KListViewItem::~KListViewItem() (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x46BC8E3C: KonqListViewDir::~KonqListViewDir() (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x40E6B9D5: QListViewItem::~QListViewItem() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x407927D9: KListViewItem::~KListViewItem() (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x46BC8E3C: KonqListViewDir::~KonqListViewDir() (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x40E6B9D5: QListViewItem::~QListViewItem() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x407927D9: KListViewItem::~KListViewItem() (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x46BC8E3C: KonqListViewDir::~KonqListViewDir() (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BC2E6C: 
KonqBaseListViewWidget::slotDeleteItem(KFileItem*) (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BC7F39: 
KonqTreeViewWidget::slotDeleteItem(KFileItem*) (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BC3FF9: KonqBaseListViewWidget::qt_invoke(int, 
QUObject*) (in /code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BC8252: KonqTreeViewWidget::qt_invoke(int, QUObject*) 
(in /code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x40D97C4F: QObject::activate_signal(QConnectionList*, 
QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40544A54: KDirLister::deleteItem(KFileItem*) (in 
/code/opt/kde3/lib/libkio.so.4.2.0) 
==2145==    by 0x40542849: KDirLister::emitChanges() (in 
/code/opt/kde3/lib/libkio.so.4.2.0) 
==2145==    by 0x46BB8378: KonqListView::slotShowDot() (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x46BBAD9D: KonqListView::qt_invoke(int, QUObject*) (in 
/code/opt/kde3/lib/kde3/konq_listview.so) 
==2145==    by 0x40D97C4F: QObject::activate_signal(QConnectionList*, 
QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D97A83: QObject::activate_signal(int) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40764BEA: KAction::activated() (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x4076DD1D: KToggleAction::slotActivated() (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x407773FE: KToggleAction::qt_invoke(int, QUObject*) (in 
/code/opt/kde3/lib/libkdeui.so.4.2.0) 
==2145==    by 0x40D97C4F: QObject::activate_signal(QConnectionList*, 
QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x410AC091: QSignal::signal(QVariant const&) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40DB1757: QSignal::activate() (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40E953FC: 
QPopupMenu::mouseReleaseEvent(QMouseEvent*) (in 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40DCBE3B: QWidget::event(QEvent*) ( 
/usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
==2145==    by 0x40D3E3D6: QApplication::internalNotify(QObject*, QEvent*) 
(in /usr/lib/qt3/lib/libqt-mt.so.3.2.0) 
 
Comment 4 Waldo Bastian 2003-05-28 10:48:52 UTC
Subject: kdebase/konqueror/listview

CVS commit by waba: 

CCMAIL: 59062-done@bugs.kde.org
Improve tracking of listviewitems so that we don't crash when
they get deleted somewhat unexpectedly. (BR59062)


  M +2 -2      konq_infolistviewitem.cc   1.2
  M +10 -38    konq_listview.cc   1.196
  M +28 -16    konq_listviewitems.cc   1.56
  M +6 -6      konq_listviewitems.h   1.24
  M +18 -25    konq_listviewwidget.cc   1.210
  M +4 -6      konq_listviewwidget.h   1.79
  M +1 -0      konq_treeviewitem.cc   1.15
  M +1 -0      konq_treeviewwidget.h   1.16