Bug 87128

Summary: filtering an equation crashes kst.
Product: [Applications] kst Reporter: Netterfield <netterfield>
Component: generalAssignee: George Staikos <staikos>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Netterfield 2004-08-13 16:28:28 UTC
Version:           0.99-devel (using KDE 3.2 BRANCH >= 20040204, Mandrake Linux Cooker i586 - Cooker)
Compiler:          gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)
OS:                Linux (i686) release 2.6.3-7mdk

filtering an equation crashes kst.  Fitting appears to be fine (other than jagged lines in real time mode).

How to reproduce:
plot an equation in kst, eg
kst --xe 0:100:100 -ye 'sin(x/5)'

apply a filter (plot->rmb->filter->...)
eg, Butterworth-lowpass, order 4, Cutoff 0.1)
kst crashes.

Note that a fit works fine.
Comment 1 Andrew Walker 2004-08-13 18:10:01 UTC
From the backtrace it appears to be a thread locking problem...

[New Thread 1093989824 (LWP 5113)]
[New Thread 1105546432 (LWP 5114)]
0xffffe002 in ?? ()
#0  0xffffe002 in ?? ()
#1  0x4078d5bd in KCrash::defaultCrashHandler(int) ()
   from /usr/lib/libkdecore.so.4
#2  <signal handler called>
#3  0x0807e009 in KstDataObject::writeUnlock() const (this=0x83a4bd8)
    at kstsharedptr.h:131
#4  0x080c9872 in KstFilterDialogI::saveInputs(KstSharedPtr<KstPlugin>, KstSharedPtr<Plugin>) (this=0x84d6eb8, plugin={ptr = 0x83a4bd8}, p={ptr = 0x83d18e8})
    at kstsharedptr.h:132
#5  0x080cb064 in KstFilterDialogI::new_I() (this=0x84d6eb8)
    at kstsharedptr.h:88
#6  0x080c8cb8 in KstFilterDialogI::OK() (this=0x84d6eb8)
    at kstfilterdialog_i.cpp:102
Comment 2 George Staikos 2004-08-13 21:11:31 UTC
CVS commit by staikos: 

first of at least 2 locking fixes - remove stray unlock
CCMAIL: 87128@bugs.kde.org


  M +0 -1      kstfilterdialog_i.cpp   1.9


--- kdeextragear-2/kst/kst/kstfilterdialog_i.cpp  #1.8:1.9
@@ -270,5 +270,4 @@ bool KstFilterDialogI::saveInputs(KstPlu
   KST::vectorList.lock().readUnlock();
 
-  plugin->writeUnlock();
   return true;
 }


Comment 3 George Staikos 2004-08-13 21:31:22 UTC
_yvector is set to an empty string, is not found, and that is causing the crash.
Comment 4 George Staikos 2004-08-13 21:36:14 UTC
CVS commit by staikos: 

base curve list, not vcurve list for the list of all curves.
     -> more evidence that equation/hs/psd should actually be objects, not curves

more error handling was added to the locking code in the process of debugging
this and may or may not be needed to fix all the crash cases
CCMAIL: 87128-done@bugs.kde.org


  M +31 -11    kstfilterdialog_i.cpp   1.10