Bug 72086 - Canceling spell checking causes segmentation fault [bracktrace included]
Summary: Canceling spell checking causes segmentation fault [bracktrace included]
Status: RESOLVED FIXED
Alias: None
Product: kbabel
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Stanislav Visnovsky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-07 20:58 UTC by Albert Astals Cid
Modified: 2004-01-13 10:17 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
also kdelibs with debug (4.33 KB, text/plain)
2004-01-12 18:11 UTC, Stanislav Visnovsky
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Albert Astals Cid 2004-01-07 20:58:19 UTC
Version:           1.3 (using KDE 3.1.94 (CVS >= 20031206), compiled sources)
Compiler:          gcc version 3.3.1 (Mandrake Linux 9.2 3.3.1-2mdk)
OS:          Linux (i686) release 2.4.22-21mdk

CVS updated as of 07 January 2004

How to reproduce:
- Write a translation with only one word, that word has to be recognised by the spell checker as not correct
- Open the spelling dialog for that message only.
- Click 'Cancel' NOT 'ignore'
- A message will appear saying you made 0 substitutions
- After clicking OK kbabel will segfault

The segmentation fault is triggered at 
kbabelview.cpp:4769 => int s=spell.kspell->dlgResult();

Backtrace

0x41608656 in waitpid () from /lib/i686/libpthread.so.0
#0  0x41608656 in waitpid () from /lib/i686/libpthread.so.0
#1  0x408afbbf in KCrash::defaultCrashHandler(int) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#2  0x416074ec in __pthread_clock_settime () from /lib/i686/libpthread.so.0
#3  0x416a8ca8 in __libc_sigaction () from /lib/i686/libc.so.6
#4  0x08088fd0 in KBabelView::spellResult(bool) (this=0x81a7a60, flag=true)
    at kbabelview.cpp:4769
#5  0x0808b724 in KBabelView::qt_invoke(int, QUObject*) (this=0x81a7a60, 
    _id=161, _o=0xbfffe690) at kbabelview.moc:1019
#6  0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x83cb050, clist=0x83cad60, o=0xbfffe690) at kernel/qobject.cpp:2359
#7  0x40d22844 in QObject::activate_signal_bool(int, bool) (this=0x83cb050, 
    signal=11, param=true) at kernel/qobject.cpp:2455
#8  0x40735614 in KSpell::done(bool) ()
   from /usr/local/kdecvs/lib/libkdeui.so.4
#9  0x40731250 in KSpell::checkList2() ()
   from /usr/local/kdecvs/lib/libkdeui.so.4
#10 0x407316a1 in KSpell::checkList3a(KProcIO*) ()
   from /usr/local/kdecvs/lib/libkdeui.so.4
#11 0x407357ed in KSpell::qt_invoke(int, QUObject*) ()
   from /usr/local/kdecvs/lib/libkdeui.so.4
#12 0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x83ca378, clist=0x83c67c0, o=0xbfffe8c0) at kernel/qobject.cpp:2359
#13 0x408fb696 in KProcIO::readReady(KProcIO*) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#14 0x408fb277 in KProcIO::controlledEmission() ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#15 0x408fb1bf in KProcIO::received(KProcess*, char*, int) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#16 0x408fb71a in KProcIO::qt_invoke(int, QUObject*) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#17 0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x83ca378, clist=0x83c6888, o=0xbfffea20) at kernel/qobject.cpp:2359
#18 0x408561ee in KProcess::receivedStdout(KProcess*, char*, int) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#19 0x4085500f in KProcess::childOutput(int) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#20 0x40854c00 in KProcess::slotChildOutput(int) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#21 0x40855cf9 in KProcess::commClose() ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#22 0x40854f57 in KProcess::processHasExited(int) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#23 0x40857393 in KProcessController::slotDoHousekeeping() ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#24 0x40857889 in KProcessController::qt_invoke(int, QUObject*) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#25 0x40d21cb5 in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x817f388, clist=0x8148980, o=0xbffff170) at kernel/qobject.cpp:2359
#26 0x40d22094 in QObject::activate_signal(int, int) (this=0x817f388, 
    signal=2, param=5) at kernel/qobject.cpp:2452
#27 0x411286cd in QSocketNotifier::activated(int) (this=0x817f388, t0=5)
    at .moc/debug-shared-mt/moc_qsocketnotifier.cpp:85
#28 0x40d46f38 in QSocketNotifier::event(QEvent*) (this=0x817f388, 
    e=0xbffff410) at kernel/qsocketnotifier.cpp:280
#29 0x40cb160b in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbffff6a0, receiver=0x817f388, e=0xbffff410)
    at kernel/qapplication.cpp:2614
#30 0x40cb0a0e in QApplication::notify(QObject*, QEvent*) (this=0xbffff6a0, 
    receiver=0x817f388, e=0xbffff410) at kernel/qapplication.cpp:2337
#31 0x4081139d in KApplication::notify(QObject*, QEvent*) ()
   from /usr/local/kdecvs/lib/libkdecore.so.4
#32 0x40c39edf in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0x817f388, event=0xbffff410) at qapplication.h:490
#33 0x40c9c610 in QEventLoop::activateSocketNotifiers() (this=0x8169658)
    at kernel/qeventloop_unix.cpp:580
#34 0x40c4d9f3 in QEventLoop::processEvents(unsigned) (this=0x8169658, flags=4)
    at kernel/qeventloop_x11.cpp:383
#35 0x40cc8ad4 in QEventLoop::enterLoop() (this=0x8169658)
    at kernel/qeventloop.cpp:198
#36 0x40cc89f0 in QEventLoop::exec() (this=0x8169658)
    at kernel/qeventloop.cpp:145
#37 0x40cb17c7 in QApplication::exec() (this=0xbffff6a0)
    at kernel/qapplication.cpp:2737
#38 0x08072224 in main (argc=7, argv=0xbffff824) at main.cpp:489
#39 0x41695c57 in __libc_start_main () from /lib/i686/libc.so.6
Comment 1 Stanislav Visnovsky 2004-01-08 22:23:03 UTC
I must say "Finish", not cancel (this would not produce the dialog about
substitions you've seen), but it crashes then.
Comment 2 Stanislav Visnovsky 2004-01-12 17:48:41 UTC
Zack, it seems done () signal is emitted twice.
Comment 3 Zack Rusin 2004-01-12 18:04:09 UTC
Any chance of seeing a bt with debugging symbols?
Comment 4 Stanislav Visnovsky 2004-01-12 18:11:33 UTC
Created attachment 4126 [details]
also kdelibs with debug

Here it is.
Comment 5 Albert Astals Cid 2004-01-12 23:42:34 UTC
I can reproduce it with both 'Finish' and 'Cancel'. Finish gives me two messages about 0 substitutions and then segfaults, Cancel gives only one message about 0 substitutions and then segfaults.
Comment 6 Zack Rusin 2004-01-13 00:05:45 UTC
Subject: Re:  Canceling spell checking causes segmentation fault [bracktrace included]

That tells me absolutely nothing. 
1) Did you update after my last patch? 
2) If you did you get a different backtrace (and definitely got 
different bt's for both cases) - please attach those.

Comment 7 Stanislav Visnovsky 2004-01-13 10:17:24 UTC
It works now, thanks a lot.