Bug 126721 - Critical: kst freezes when loading some files
Summary: Critical: kst freezes when loading some files
Status: RESOLVED NOT A BUG
Alias: None
Product: kst
Classification: Applications
Component: general (show other bugs)
Version: 1.x
Platform: unspecified Solaris
: NOR normal
Target Milestone: ---
Assignee: kst
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-04 11:42 UTC by Nicolas Brisset
Modified: 2006-06-01 12:11 UTC (History)
0 users

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 Nicolas Brisset 2006-05-04 11:42:57 UTC
Version:           1.3.0_devel (using KDE 3.4.0, compiled sources)
Compiler:          gcc version 3.4.3
OS:                SunOS (sun4u) release 5.8

We have problems with kst from HEAD (I don't know since when this is the case), but some files won't load. I unfortunately can't send you the actual file it happens with (I could send the .kst, but the data file is more problematic) but at some point during the initial document loading, kst UI freezes while the only output I get in the console is "update thread paused".

Below is a backtrace I got from the debugger. I hope that's enough to locate the problem, as it is really blocking: we can't work on saved files (it happens indifferently with files saved recently or long ago). 
FYI, we have the same problem with two different datasources, while both datafiles are read correctly from the datawizard. The common point between both cases is that we use equations, though, and looking at the backtrace it seems to be linked. I suspect there's something wrong with equations, but I don't have time right now to dig more...

Program received signal SIGINT, Interrupt.
KstVector::internalUpdate (this=0xb5f630, providerRC=KstObject::UPDATE) at kstvector.cpp:378
  /dk/ouvea-3510-0/users/brisset/graphics/kst/src/libkst/kstvector.cpp:378:10734:beg:0xfed3fe2c
(gdb) where
#0  KstVector::internalUpdate (this=0xb5f630, providerRC=KstObject::UPDATE) at kstvector.cpp:378
#1  0xfed449cc in KstRVector::doUpdate (this=0xb5f630, force=false) at kstrvector.cpp:627
#2  0xfed44a60 in KstRVector::update (this=0xb5f630, update_counter=0) at kstrvector.cpp:420
#3  0xfede7d80 in Equation::Data::update (this=0xc7bff0, counter=-1, ctx=0xffbeb258) at enodes.cpp:896
#4  0xfede53c0 in Equation::BinaryNode::update (this=0xc7caa8, counter=-1, ctx=0xffbeb258) at enodes.cpp:160
#5  0xfede53dc in Equation::BinaryNode::update (this=0xc7cac0, counter=-1, ctx=0xffbeb258) at enodes.cpp:161
#6  0xfede53c0 in Equation::BinaryNode::update (this=0xc7cc40, counter=-1, ctx=0xffbeb258) at enodes.cpp:160
#7  0xfede53dc in Equation::BinaryNode::update (this=0xc7cc58, counter=-1, ctx=0xffbeb258) at enodes.cpp:161
#8  0xfede53dc in Equation::BinaryNode::update (this=0xc7cc70, counter=-1, ctx=0xffbeb258) at enodes.cpp:161
#9  0xfedd4740 in KstEquation::setEquation (this=0xc757c8, in_fn=@0xffbeb448) at kstequation.cpp:284
#10 0xfedd5838 in KstEquation::commonConstructor (this=0xc757c8, in_tag=@0xffbeb450, in_equation=@0xffbeb448) at kstequation.cpp:162
#11 0xfedd6860 in KstEquation (this=0xc757c8, e=@0xffbeb3e0) at kstequation.cpp:138
#12 0xff1b02b4 in KstDoc::openDocument (this=0x17b708, url=@0xffbeb918, o_file=@0x55a5c4, o_n=-2, o_f=-2, o_s=-1, o_ave=false) at kstdoc.cpp:404
#13 0xff1c2e20 in KstApp::openDocumentFile (this=0x11fc18, in_filename=@0x55a5c0, o_file=@0x55a5c4, o_n=-2, o_f=-2, o_s=-1, o_ave=false, delayed=false) at kst.cpp:1031
#14 0xff1c2ff8 in KstApp::doDelayedOpens (this=0x11fc18) at kst.cpp:997
#15 0xff1c6340 in KstApp::qt_invoke (this=0x11fc18, _id=251, _o=0xffbebb68) at kst.moc:641
#16 0xfd69c5c4 in QObject::activate_signal () from /usr/local/kde/lib/libqt-mt.so.3
#17 0xfd99dae0 in QSignal::signal () from /usr/local/kde/lib/libqt-mt.so.3
#18 0xfd6b2de4 in QSignal::activate () from /usr/local/kde/lib/libqt-mt.so.3
#19 0xfd6ba54c in QSingleShotTimer::event () from /usr/local/kde/lib/libqt-mt.so.3
#20 0xfd643024 in QApplication::internalNotify () from /usr/local/kde/lib/libqt-mt.so.3
#21 0xfd6432f0 in QApplication::notify () from /usr/local/kde/lib/libqt-mt.so.3
#22 0xfe0bd6d0 in KApplication::notify () from /usr/local/kde/V3.4.0/lib/libkdecore.so.4
#23 0xfd636a6c in QEventLoop::activateTimers () from /usr/local/kde/lib/libqt-mt.so.3
#24 0xfd5f24e4 in QEventLoop::processEvents () from /usr/local/kde/lib/libqt-mt.so.3
#25 0xfd658e7c in QEventLoop::enterLoop () from /usr/local/kde/lib/libqt-mt.so.3
#26 0xfd658d64 in QEventLoop::exec () from /usr/local/kde/lib/libqt-mt.so.3
#27 0xfd641fb8 in QApplication::exec () from /usr/local/kde/lib/libqt-mt.so.3
#28 0x0001f384 in main ()
(
Comment 1 Nicolas Brisset 2006-05-04 12:18:26 UTC
In fact, it looks like the problem comes from missing fields (i.e. when the datasource can't find the fields it is supposed to load, kst runs into very long loops). I had introduced a bug in the CDF fieldList() function which I'm still testing before committing, and after fixing it I can load the files again. I'm waiting for confirmation from the other person who had a similar problem whether his problem is the same, but in any case something's wrong on kst side: when fields are not in the field list returned by the datasource, they should just be skipped...
Comment 2 Nicolas Brisset 2006-05-04 15:32:28 UTC
I confirm that the other case we had was also a file where some vectors were missing. So apparently those are not properly skipped...
Comment 3 George Staikos 2006-05-04 18:03:32 UTC
  Is there no way you can send a testcase of some sort for this problem?
Comment 4 Nicolas Brisset 2006-05-04 18:16:40 UTC
Do you still have the files I sent a while back (NB_use_case.{cdf,kst}) ? I had taken some time to make sure nobody could complain that I had sent those by removing all contextual data, and I could probably make a test case out of them. I have to find them (I forgot where they are stored), though :-)

Comment 5 George Staikos 2006-05-04 18:42:15 UTC
  Yes I still have it.
Comment 6 George Staikos 2006-05-30 16:12:12 UTC
Please explain how to reproduce this.
Comment 7 Nicolas Brisset 2006-06-01 12:11:04 UTC
I have been trying to find a testcase for a while, but in the end it turned out that all the problems were bugs on my side...