Bug 204880

Summary: KDevelop crashes when checking for differences (QListData::begin,.., Diff2::DiffHunk::destinationLineCount, Diff2::KompareModelList::blendFile)
Product: [Applications] kompare Reporter: Aleix Pol <aleixpol>
Component: generalAssignee: Kompare developers <kompare-devel>
Status: RESOLVED FIXED    
Severity: crash CC: killerfox512
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Unspecified   
Latest Commit: Version Fixed In:

Description Aleix Pol 2009-08-23 17:06:52 UTC
Version:            (using Devel)
Installed from:    Compiled sources

I since the last changes (I guess since the last changes in Kompare) I've been having this crash when comparing to base (Backtrace follows). I decided to apply the bug for KDevelop instead of Kompare because this didn't happen before, should be moved to Kompare I guess, anyway.

If it's a problem on the instantiation or usage of Kompare just tell me and I'll try to fix it myself.

Backtrace:

(gdb) bt full
#0  0xa45c2048 in QListData::begin (this=0x9410018) at /usr/include/QtCore/qlist.h:90
No locals.                                                                           
#1  0xa45d0dc2 in QList<Diff2::Difference*>::begin (this=0x9410018) at /usr/include/QtCore/qlist.h:238
No locals.                                                                                            
#2  0xa45d1dbd in Diff2::DiffHunk::destinationLineCount (this=0x9410010) at /home/kde-devel/kdesdk/kompare/libdiff2/diffhunk.cpp:57
        diffIt = {i = 0x8ab5a28}                                                                                                   
        dEnd = {i = 0x8ab5a28}                                                                                                     
        lineCount = 7                                                                                                              
#3  0xa45cae00 in Diff2::KompareModelList::blendFile (this=0x9a843d0, model=0xadf1ef0, fileContents=@0xbfefa734)                   
    at /home/kde-devel/kdesdk/kompare/libdiff2/komparemodellist.cpp:1023                                                           
        hunk = (Diff2::DiffHunk *) 0x9a3b968                                                                                       
        size = 7                                                                                                                   
        srcLineNo = 155                                                                                                            
        destLineNo = 148                                                                                                           
        linesIt = {i = 0xb7a9f28}                                                                                                  
        hunkIt = {i = 0xa35e3ec}                                                                                                   
        newHunk = (Diff2::DiffHunk *) 0xa5f2708                                                                                    
        __PRETTY_FUNCTION__ = "bool Diff2::KompareModelList::blendFile(Diff2::DiffModel*, const QString&)"                         
        hunks = (DiffHunkList *) 0xadf1f18                                                                                         
        newDiff = (Diff2::Difference *) 0x9410010                                                                                  
        list = {<QList<QString>> = {{p = {d = 0x98028a0}, d = 0x98028a0}}, <No data fields>}                                       
        lines = {{d = 0x9a90a40, e = 0x9a90a40}}                                                                                   
        lEnd = {i = 0x9a90a40}                                                                                                     
#4  0xa45ca79d in Diff2::KompareModelList::blendOriginalIntoModelList (this=0x9a843d0, localURL=@0x91f637c)                        
    at /home/kde-devel/kdesdk/kompare/libdiff2/komparemodellist.cpp:949                                                            
        __PRETTY_FUNCTION__ = "bool Diff2::KompareModelList::blendOriginalIntoModelList(const QString&)"                           
        model = (Diff2::DiffModel *) 0xbfefa8a8                                                                                    
        fileContents = {d = 0xb023bc0}                                                                                             
        fi = {d_ptr = 0xbad5c10}                                                                                                   
        result = false                                                                                                             
#5  0xa45c71a5 in Diff2::KompareModelList::slotDiffProcessFinished (this=0x9a843d0, success=true)                                  
    at /home/kde-devel/kdesdk/kompare/libdiff2/komparemodellist.cpp:451                                                            
        __PRETTY_FUNCTION__ = "void Diff2::KompareModelList::slotDiffProcessFinished(bool)"                                        
#6  0xa45cc08e in Diff2::KompareModelList::qt_metacall (this=0x9a843d0, _c=QMetaObject::InvokeMetaMethod, _id=20, _a=0xbfefa9d8)   
---Type <return> to continue, or q <return> to quit---                                                                             
    at /home/kde-devel/build-kdesdk/kompare/libdiff2/komparemodellist.moc:144                                                      
No locals.                                                                                                                         
#7  0xb6d9f9ac in QMetaObject::activate () from /usr/lib/libQtCore.so.4                                                            
No symbol table info available.                                                                                                    
#8  0xb6da05e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4                                                            
No symbol table info available.                                                                                                    
#9  0xa45c1c6a in KompareProcess::diffHasFinished (this=0x83a54f0, _t1=true) at /home/kde-devel/build-kdesdk/kompare/libdiff2/kompareprocess.moc:86
        _a = {0x0, 0xbfefa9cc}                                                                                                                     
#10 0xa45c1ae2 in KompareProcess::slotFinished (this=0x83a54f0, exitCode=1, exitStatus=QProcess::NormalExit)                                       
    at /home/kde-devel/kdesdk/kompare/libdiff2/kompareprocess.cpp:279                                                                              
        __PRETTY_FUNCTION__ = "void KompareProcess::slotFinished(int, QProcess::ExitStatus)"                                                       
#11 0xa45c1c0c in KompareProcess::qt_metacall (this=0x83a54f0, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0xbfefab44)                             
    at /home/kde-devel/build-kdesdk/kompare/libdiff2/kompareprocess.moc:74                                                                         
No locals.                                                                                                                                         
#12 0xb6d9f9ac in QMetaObject::activate () from /usr/lib/libQtCore.so.4                                                                            
No symbol table info available.                                                                                                                    
#13 0xb6da05e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4                                                                            
No symbol table info available.                                                                                                                    
#14 0xb6d27ff9 in QProcess::finished () from /usr/lib/libQtCore.so.4                                                                               
No symbol table info available.                                                                                                                    
#15 0xb6d2da5e in ?? () from /usr/lib/libQtCore.so.4                                                                                               
No symbol table info available.                                                                                                                    
#16 0xb6d2db2e in QProcess::qt_metacall () from /usr/lib/libQtCore.so.4                                                                            
No symbol table info available.                                                                                                                    
#17 0xb7e8a28c in KProcess::qt_metacall (this=0x83a54f0, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfeface8)                                  
    at /home/kde-devel/build-kdelibs/kdecore/kprocess.moc:63                                                                                       
No locals.                                                                                                                                         
#18 0xa45c1ba4 in KompareProcess::qt_metacall (this=0x83a54f0, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfeface8)                            
    at /home/kde-devel/build-kdesdk/kompare/libdiff2/kompareprocess.moc:68                                                                         
No locals.                                                                                                                                         
#19 0xb6d9f9ac in QMetaObject::activate () from /usr/lib/libQtCore.so.4                                                                            
No symbol table info available.                                                                                                                    
#20 0xb6da05e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4                                                                            
No symbol table info available.                                                                                                                    
---Type <return> to continue, or q <return> to quit---                                                                                             
#21 0xb6dd9923 in QSocketNotifier::activated () from /usr/lib/libQtCore.so.4                                                                       
No symbol table info available.                                                                                                                    
#22 0xb6da4337 in QSocketNotifier::event () from /usr/lib/libQtCore.so.4                                                                           
No symbol table info available.                                                                                                                    
#23 0xb636f994 in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4                                                                
No symbol table info available.                                                                                                                    
#24 0xb637707c in QApplication::notify () from /usr/lib/libQtGui.so.4                                                                              
No symbol table info available.                                                                                                                    
#25 0xb70c1a14 in KApplication::notify (this=0xbfefb400, receiver=0x99fd250, event=0xbfefb0a4) at /home/kde-devel/kdelibs/kdeui/kernel/kapplication.cpp:302
        t = QEvent::SockAct
#26 0xb6d89fcb in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
No symbol table info available.
#27 0xb6db496a in ?? () from /usr/lib/libQtCore.so.4
No symbol table info available.
#28 0xb5044d98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#29 0xb50483e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#30 0xb5048513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#31 0xb6db46cc in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
No symbol table info available.
#32 0xb640d6c5 in ?? () from /usr/lib/libQtGui.so.4
No symbol table info available.
#33 0xb6d88579 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
No symbol table info available.
#34 0xb6d889ca in QEventLoop::exec () from /usr/lib/libQtCore.so.4
No symbol table info available.
#35 0xb6d8ae3f in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
No symbol table info available.
#36 0xb636f817 in QApplication::exec () from /usr/lib/libQtGui.so.4
No symbol table info available.
#37 0x0804f106 in main (argc=1, argv=0xbfefb914) at /home/kde-devel/kdevelop/app/main.cpp:181
        aboutData = {d = 0x82173d0}
---Type <return> to continue, or q <return> to quit---
        app = {<> = {<No data fields>}, d = 0x82483b0}
        count = 0
        __PRETTY_FUNCTION__ = "int main(int, char**)"
        description = "The KDevelop Integrated Development Environment"
        options = {d = 0x821cfd0}
        args = (KCmdLineArgs *) 0x821d1f0
        core = (class KDevelop::Core *) 0x82a3c80
        projectNames = {<QList<QString>> = {{p = {d = 0x80534e4}, d = 0x80534e4}}, <No data fields>}
Comment 1 Andreas Pakulat 2009-08-23 19:56:51 UTC
not sure why you filed this under kdevelop, the backtrace suggests its a kompare bug.
Comment 2 Ramón Zarazúa 2009-08-24 19:19:25 UTC
Reproduced.

I reverted the last changes I made to Kompare (Which were the last changes to be made to kompare), and it still crashes. I am thinking that it might have been something in kdelibs or kdebase, since I updated those between the last time it worked and now. Aleix: do you remember updating either of those modules?
Comment 3 Kevin Kofler 2009-08-24 19:44:22 UTC
Oh, BTW, if you KDevelop folks need some KomparePart API additions in 4.3.1, you'll have to get them into the 4.3 branch ASAP, I think it's going to be tagged in a few days. But if this integration is still unstable, maybe it should wait for 4.3.2 or 4.4?
Comment 4 Aleix Pol 2009-08-24 20:31:30 UTC
I'm using trunk, everything up to date.
Comment 5 Ramón Zarazúa 2009-08-26 22:28:24 UTC
As I thought it was a problem in kdelibs. Appears to be fixed now.
Comment 6 Ramón Zarazúa 2009-08-26 22:49:51 UTC
Never mind, after more testing the bug is still there. This all looks like memory corruption
Comment 7 Ramón Zarazúa 2009-08-27 02:26:50 UTC
Fixed by commit  1010312
Comment 8 Kevin Kofler 2009-08-27 14:54:49 UTC
Isn't the fix actually http://websvn.kde.org/?view=rev&revision=1016093 ?
Corresponding 4.3 branch commit: http://websvn.kde.org/?view=rev&revision=1016097 (note that the referenced trunk revision is wrong, this is actually a backport of 1016093).