Bug 140226

Summary: Find - okular crash in all documents
Product: [Applications] okular Reporter: Jiri Klement <jiri.klement>
Component: generalAssignee: Okular developers <okular-devel>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Jiri Klement 2007-01-18 08:01:59 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 4.1.1-3 
OS:                Linux

Searching in documents (tested with pdf, chm and odt) always cause segmentation fault. Find dialog is correctly displayed, but after click on OK, okular crashes.

Backtrace from gdb:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1235499344 (LWP 6137)]
0xb7e9426f in QMetaObject::activate () from /usr/lib/qt4/libQtCore.so.4
(gdb) backtrace 
#0  0xb7e9426f in QMetaObject::activate () from /usr/lib/qt4/libQtCore.so.4
#1  0xb7e951bc in QMetaObject::activate () from /usr/lib/qt4/libQtCore.so.4
#2  0xb7a73b44 in KDialog::okClicked () from /usr/kde/4.0/lib/libkdeui.so.5
#3  0xb7c0320c in typeinfo for KBugReport ()
   from /usr/kde/4.0/lib/libkdeui.so.5
#4  0x00000008 in ?? ()
#5  0x00000000 in ?? ()

A slightly different backtrace:

#0  0xb7ddb782 in QThreadStorageData::~QThreadStorageData () from /usr/lib/qt4/libQtCore.so.4
#1  0xb7dd8c61 in QMutex::lock () from /usr/lib/qt4/libQtCore.so.4
#2  0xb7dd9199 in QReadWriteLock::lockForRead () from /usr/lib/qt4/libQtCore.so.4
#3  0xb7e92384 in QMetaObject::activate () from /usr/lib/qt4/libQtCore.so.4
#4  0xb7e931bc in QMetaObject::activate () from /usr/lib/qt4/libQtCore.so.4
#5  0xb7a6c1e4 in KDialog::okClicked () from /usr/kde/4.0/lib/libkdeui.so.5
#6  0xb7c02acc in typeinfo for KBugReport () from /usr/kde/4.0/lib/libkdeui.so.5
#7  0x00000008 in ?? ()
#8  0x00000000 in ?? ()

Tested with qt 4.2.2 and current kdelibs from svn.
Comment 1 Albert Astals Cid 2007-01-18 21:03:52 UTC
SVN commit 625053 by aacid:

okClicked is emitted by KDialog and this slot is connected to it, so if we emit it from there we end up in a infinite loop and we crash.
BUG: 140226


 M  +0 -1      kfinddialog.cpp  


--- trunk/KDE/kdelibs/kdeui/findreplace/kfinddialog.cpp #625052:625053
@@ -606,7 +606,6 @@
         }
     }
     m_find->addToHistory(pattern());
-    emit okClicked();
     if ( windowModality() != Qt::NonModal )
         accept();
 }