Bug 112401 - crash comparing two large directories
Summary: crash comparing two large directories
Status: RESOLVED FIXED
Alias: None
Product: kompare
Classification: Applications
Component: general (show other bugs)
Version: 3.4
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Kompare developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-11 01:35 UTC by William S Fulton
Modified: 2009-02-14 16:46 UTC (History)
3 users (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 William S Fulton 2005-09-11 01:35:10 UTC
Version:           3.4 (using KDE KDE 3.4.0)
Installed from:    SuSE RPMs
OS:                Linux

I often use kompare to diff large directories. Once in a while it will just crash with:

KCrash: Application 'kompare' crashing...

after hitting enter the command prompt returns, so I've used gdb to get more info and have attached a stack trace below. The diffs are comparing 2x 25MB directories. They are a bit large to include here, so please let me know if you need the directories, otherwise I can help debug this further.

Stack indicates possible out of memory situation - the diffs in the files are not that very much, so find this surprising. I got 256MB RAM.

William

william@jaguar:~/swig/SWIG> kompare --version
Qt: 3.3.4
KDE: 3.4.0 Level "b"
Kompare: 3.4
william@jaguar:~/swig/SWIG> cat /etc/SuSE-release
SuSE Linux 9.3 (i586)
VERSION = 9.3
william@jaguar:~/swig/SWIG> gdb --args kompare ../goodts/csharpold26 Examples/test-suite/csharp
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) run
Starting program: /opt/kde3/bin/kompare ../goodts/csharpold26 Examples/test-suite/csharp
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 1097316736 (LWP 26118)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
Qt: gdb: -nograb added to command-line options.
         Use the -dograb option to enforce grabbing.

Program received signal SIGABRT, Aborted.
[Switching to Thread 1097316736 (LWP 26118)]
0xffffe410 in ?? ()
(gdb) where
#0  0xffffe410 in ?? ()
#1  0xbfffdf38 in ?? ()
#2  0x00000006 in ?? ()
#3  0x00006606 in ?? ()
#4  0x415872c1 in raise () from /lib/tls/libc.so.6
#5  0x41588b75 in abort () from /lib/tls/libc.so.6
#6  0x41514d95 in std::set_unexpected () from /usr/lib/libstdc++.so.5
#7  0x41514dd2 in std::terminate () from /usr/lib/libstdc++.so.5
#8  0x41514f12 in __cxa_throw () from /usr/lib/libstdc++.so.5
#9  0x41515153 in operator new () from /usr/lib/libstdc++.so.5
#10 0x4151522d in operator new[] () from /usr/lib/libstdc++.so.5
#11 0x41a7066a in Diff2::LevenshteinTable::LevenshteinTable () from /opt/kde3/lib/kde3/libkomparepart.so
#12 0x41a7072c in Diff2::Difference::Difference () from /opt/kde3/lib/kde3/libkomparepart.so
#13 0x41a78410 in Diff2::KompareModelList::blendFile () from /opt/kde3/lib/kde3/libkomparepart.so
#14 0x41a7887c in Diff2::KompareModelList::blendOriginalIntoModelList () from /opt/kde3/lib/kde3/libkomparepart.so
#15 0x41a792cf in Diff2::KompareModelList::slotDiffProcessFinished () from /opt/kde3/lib/kde3/libkomparepart.so
#16 0x41a7bfdd in Diff2::KompareModelList::qt_invoke () from /opt/kde3/lib/kde3/libkomparepart.so
#17 0x40d7ce7e in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3
#18 0x40d7cfd3 in QObject::activate_signal_bool () from /usr/lib/qt3/lib/libqt-mt.so.3
#19 0x41a7bbd8 in KompareProcess::diffHasFinished () from /opt/kde3/lib/kde3/libkomparepart.so
#20 0x41a7bccd in KompareProcess::slotProcessExited () from /opt/kde3/lib/kde3/libkomparepart.so
#21 0x41a7bdb6 in KompareProcess::qt_invoke () from /opt/kde3/lib/kde3/libkomparepart.so
#22 0x40d7ce7e in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0x408cb532 in KProcess::processExited () from /opt/kde3/lib/libkdecore.so.4
#24 0x408cb5ac in KProcess::processHasExited () from /opt/kde3/lib/libkdecore.so.4
#25 0x4092472a in KProcessController::slotDoHousekeeping () from /opt/kde3/lib/libkdecore.so.4
#26 0x409247a8 in KProcessController::qt_invoke () from /opt/kde3/lib/libkdecore.so.4
#27 0x40d7ce7e in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0x40d7d4ad in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0x410d11f0 in QSocketNotifier::activated () from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0x40d9ca70 in QSocketNotifier::event () from /usr/lib/qt3/lib/libqt-mt.so.3
#31 0x40d19d5f in QApplication::internalNotify () from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0x40d1ba83 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#33 0x409a56b1 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#34 0x40d0de76 in QEventLoop::activateSocketNotifiers () from /usr/lib/qt3/lib/libqt-mt.so.3
#35 0x40cc7242 in QEventLoop::processEvents () from /usr/lib/qt3/lib/libqt-mt.so.3
#36 0x40d31e51 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#37 0x40d31c96 in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#38 0x40d1b94f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#39 0x08059d3d in ?? ()
#40 0xbfffeea0 in ?? ()
#41 0xbfffee20 in ?? ()
#42 0xbfffee60 in ?? ()
#43 0x00000000 in ?? ()
#44 0x00000000 in ?? ()
#45 0x00000001 in ?? ()
#46 0x08066d60 in typeinfo name for QGList ()
#47 0x00000000 in ?? ()
#48 0x08066d94 in typeinfo name for QGList ()
#49 0x080660fd in typeinfo name for QGList ()
#50 0x4147e4dc in ?? ()
#51 0x40016ff4 in ?? () from /lib/ld-linux.so.2
#52 0x00000000 in ?? ()
#53 0x00000000 in ?? ()
#54 0xbfffee2c in ?? ()
---Type <return> to continue, or q <return> to quit---
#55 0x4000811f in do_lookup_x () from /lib/ld-linux.so.2
#56 0x41574e80 in __libc_start_main () from /lib/tls/libc.so.6
#57 0x08054351 in ?? ()
(gdb)
Comment 1 b.heesakkers 2006-07-05 19:49:03 UTC
I've got exactly the same problem.
Running Debian GNU/Linux Testing with KDE and Gnome ( crashes on both Window Managers ). 

Versions:
Qt: 3.3.6
KDE: 3.5.3
Kompare: 3.4.1

When I try to compare two very large directories, first diff is active, then suddenly Kompare starts to eat memory. It keeps eating memory untill it's 2 GB big, and then it crashes. 

These are the results of the debug program:

(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1233987232 (LWP 9724)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#5  0xb67927c7 in raise () from /lib/tls/libc.so.6
#6  0xb679406b in abort () from /lib/tls/libc.so.6
#7  0xb6987644 in __gnu_cxx::__verbose_terminate_handler ()
   from /usr/lib/libstdc++.so.6
#8  0xb6985035 in std::set_unexpected () from /usr/lib/libstdc++.so.6
#9  0xb6985072 in std::terminate () from /usr/lib/libstdc++.so.6
#10 0xb69851aa in __cxa_throw () from /usr/lib/libstdc++.so.6
#11 0xb69855eb in operator new () from /usr/lib/libstdc++.so.6
#12 0xb69856bd in operator new[] () from /usr/lib/libstdc++.so.6
#13 0xb6302415 in Diff2::LevenshteinTable::LevenshteinTable ()
   from /usr/lib/kde3/libkomparepart.so
#14 0xb63018f2 in Diff2::Difference::Difference ()
   from /usr/lib/kde3/libkomparepart.so
#15 0xb63072b7 in Diff2::ParserBase::parseUnifiedHunkBody ()
   from /usr/lib/kde3/libkomparepart.so
#16 0xb6303f69 in Diff2::ParserBase::parseUnified ()
   from /usr/lib/kde3/libkomparepart.so
#17 0xb6303b65 in Diff2::ParserBase::parse ()
   from /usr/lib/kde3/libkomparepart.so
#18 0xb630350e in Diff2::Parser::parse () from /usr/lib/kde3/libkomparepart.so
#19 0xb62fba54 in Diff2::KompareModelList::parseDiffOutput ()
   from /usr/lib/kde3/libkomparepart.so
#20 0xb62fcd48 in Diff2::KompareModelList::slotDiffProcessFinished ()
   from /usr/lib/kde3/libkomparepart.so
#21 0xb62fdd2f in Diff2::KompareModelList::qt_invoke ()
   from /usr/lib/kde3/libkomparepart.so
#22 0xb6f6054b in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#23 0xb6f608a1 in QObject::activate_signal_bool () from /usr/lib/libqt-mt.so.3
#24 0xb62f6df1 in KompareProcess::diffHasFinished ()
   from /usr/lib/kde3/libkomparepart.so
#25 0xb62f6edf in KompareProcess::slotProcessExited ()
   from /usr/lib/kde3/libkomparepart.so
#26 0xb62f7f90 in KompareProcess::qt_invoke ()
   from /usr/lib/kde3/libkomparepart.so
#27 0xb6f6054b in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#28 0xb75dde42 in KProcess::processExited () from /usr/lib/libkdecore.so.4
#29 0xb75ddeaf in KProcess::processHasExited () from /usr/lib/libkdecore.so.4
#30 0xb75d7730 in KProcessController::slotDoHousekeeping ()
   from /usr/lib/libkdecore.so.4
#31 0xb75d7852 in KProcessController::qt_invoke ()
   from /usr/lib/libkdecore.so.4
#32 0xb6f6054b in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#33 0xb6f60e52 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#34 0xb72f2f7f in QSocketNotifier::activated () from /usr/lib/libqt-mt.so.3
#35 0xb6f8080a in QSocketNotifier::event () from /usr/lib/libqt-mt.so.3
#36 0xb6ef687a in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#37 0xb6ef6a76 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#38 0xb768a24e in KApplication::notify () from /usr/lib/libkdecore.so.4
#39 0xb6e88001 in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#40 0xb6ee8435 in QEventLoop::activateSocketNotifiers ()
   from /usr/lib/libqt-mt.so.3
#41 0xb6e9bd06 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#42 0xb6f0f255 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#43 0xb6f0f17a in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#44 0xb6ef538d in QApplication::exec () from /usr/lib/libqt-mt.so.3
#45 0x08053fc6 in ?? ()
#46 0xbf923a30 in ?? ()
#47 0x080fa568 in ?? ()
#48 0x00000000 in ?? ()
Comment 2 FiNeX 2009-01-04 16:26:26 UTC

*** This bug has been marked as a duplicate of bug 106732 ***
Comment 3 Otto Bruggeman 2009-02-14 16:46:18 UTC
This was not a duplicate of 106732 and this should be fixed already.