Bug 130198

Summary: Kst sometimes freezes when calling the plot dialog
Product: [Applications] kst Reporter: Nicolas Brisset <nicolas.brisset>
Component: generalAssignee: kst
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: unspecified   
OS: Solaris   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nicolas Brisset 2006-07-03 15:15: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

I am unfortunately not completely sure how it happens, but kst sometimes freezes when showing the plot dialog. Below are two backtraces we got after attaching to the frozen process with a debugger, I hope it provides enough information to understand how the problem is created.

Just some context information, in case it helps: we load an existing .kst, where one vector (used by a curve) is missing from the data file (not sure whether this is linked with the problem, though). Then we call the plot dialog a (more or less random but small) number of times, making content changes and applying. At some point, the plot dialog will freeze just after we have called it.

##############
# First case
##############

(gdb) where
#0  0xfd01f4c4 in _lwp_sema_wait () from /usr/lib/libc.so.1
#1  0xfceb96fc in _park () from /usr/lib/libthread.so.1
#2  0xfceb93c4 in _swtch () from /usr/lib/libthread.so.1
#3  0xfceb81cc in cond_wait () from /usr/lib/libthread.so.1
#4  0xfceb8090 in pthread_cond_wait () from /usr/lib/libthread.so.1
#5  0xfd90aa7c in QWaitCondition::wait () from /usr/local/kde/lib/libqt-mt.so.3
#6  0xfd948de0 in QSemaphore::operator++ () from /usr/local/kde/lib/libqt-mt.so.3
#7  0xfedbc158 in KstDataObject::readLock (this=0xb81930) at kstdataobject.cpp:202
#8  0xfed46f84 in KstPrimitive::readLock (this=0xb84d60) at kstprimitive.cpp:79
#9  0xfedbc550 in KstDataObject::readLock (this=0xb877d8) at kstdataobject.cpp:237
#10 0xff16c798 in KstPlotDialogI::updateCurveLists (this=0x1b48a8) at kstplotdialog_i.cpp:1261
#11 0xff16d008 in KstPlotDialogI::update (this=0x1b48a8, new_index=-1) at kstplotdialog_i.cpp:310
#12 0xff1bf4b0 in KstApp::updateDialogs (this=0x10beb8, onlyVisible=true) at kst.cpp:2162
#13 0xff1ca788 in KstApp::qt_invoke (this=0x10beb8, _id=233, _o=0xffbed018) at kst.moc:623
#14 0xfd69c5c4 in QObject::activate_signal () from /usr/local/kde/lib/libqt-mt.so.3
#15 0xfd99dae0 in QSignal::signal () from /usr/local/kde/lib/libqt-mt.so.3
#16 0xfd6b2de4 in QSignal::activate () from /usr/local/kde/lib/libqt-mt.so.3
#17 0xfd6ba54c in QSingleShotTimer::event () from /usr/local/kde/lib/libqt-mt.so.3
#18 0xfd643024 in QApplication::internalNotify () from /usr/local/kde/lib/libqt-mt.so.3
#19 0xfd6432f0 in QApplication::notify () from /usr/local/kde/lib/libqt-mt.so.3
#20 0xfe0bd6d0 in KApplication::notify () from /usr/local/kde/V3.4.0/lib/libkdecore.so.4
#21 0xfd636a6c in QEventLoop::activateTimers () from /usr/local/kde/lib/libqt-mt.so.3
#22 0xfd5f24e4 in QEventLoop::processEvents () from /usr/local/kde/lib/libqt-mt.so.3
#23 0xfd658e7c in QEventLoop::enterLoop () from /usr/local/kde/lib/libqt-mt.so.3
#24 0xfd658d64 in QEventLoop::exec () from /usr/local/kde/lib/libqt-mt.so.3
#25 0xfd641fb8 in QApplication::exec () from /usr/local/kde/lib/libqt-mt.so.3
#26 0x0001f3a0 in main (argc=1, argv=0xffbedc6c) at main.cpp:816


##############
# Second case
##############
(gdb) (gdb) where
#0  0xfd01f4c4 in _lwp_sema_wait () from /usr/lib/libc.so.1
#1  0xfceb96fc in _park () from /usr/lib/libthread.so.1
#2  0xfceb93c4 in _swtch () from /usr/lib/libthread.so.1
#3  0xfceb81cc in cond_wait () from /usr/lib/libthread.so.1
#4  0xfceb8090 in pthread_cond_wait () from /usr/lib/libthread.so.1
#5  0xfd90aa7c in QWaitCondition::wait () from /usr/local/kde/lib/libqt-mt.so.3
#6  0xfd948de0 in QSemaphore::operator++ () from /usr/local/kde/lib/libqt-mt.so.3
#7  0xfed46f9c in KstPrimitive::readLock (this=0x728700) at kstprimitive.cpp:84
#8  0xfedbc550 in KstDataObject::readLock (this=0xa43408) at kstdataobject.cpp:237
#9  0xfed46f84 in KstPrimitive::readLock (this=0xa46c08) at kstprimitive.cpp:79
#10 0xfed46f84 in KstPrimitive::readLock (this=0xa46ff0) at kstprimitive.cpp:79
#11 0xff16a098 in KstPlotDialogI::updateScalarCombo (this=0x1b4d40) at kstplotdialog_i.cpp:1286
#12 0xff16cff0 in KstPlotDialogI::update (this=0x1b4d40, new_index=-1) at kstplotdialog_i.cpp:307
#13 0xff133148 in Kst2DPlot::qt_invoke (this=0xae06a8, _id=31, _o=0xffbec268) at kst2dplot.moc:264
#14 0xfd69c5c4 in QObject::activate_signal () from /usr/local/kde/lib/libqt-mt.so.3
#15 0xfd99dae0 in QSignal::signal () from /usr/local/kde/lib/libqt-mt.so.3
#16 0xfd6b2de4 in QSignal::activate () from /usr/local/kde/lib/libqt-mt.so.3
#17 0xfd792078 in QPopupMenu::mouseReleaseEvent () from /usr/local/kde/lib/libqt-mt.so.3
#18 0xfd6d1840 in QWidget::event () from /usr/local/kde/lib/libqt-mt.so.3
#19 0xfd643024 in QApplication::internalNotify () from /usr/local/kde/lib/libqt-mt.so.3
#20 0xfd6433b4 in QApplication::notify () from /usr/local/kde/lib/libqt-mt.so.3
#21 0xfe0bd6d0 in KApplication::notify () from /usr/local/kde/V3.4.0/lib/libkdecore.so.4
#22 0xfd5e1e00 in QETWidget::translateMouseEvent () from /usr/local/kde/lib/libqt-mt.so.3
#23 0xfd5e0210 in QApplication::x11ProcessEvent () from /usr/local/kde/lib/libqt-mt.so.3
#24 0xfd5f1f64 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 0xfd641fdc in QApplication::enter_loop () from /usr/local/kde/lib/libqt-mt.so.3
#27 0xfd7953d8 in QPopupMenu::exec () from /usr/local/kde/lib/libqt-mt.so.3
#28 0xfd795498 in QPopupMenu::exec () from /usr/local/kde/lib/libqt-mt.so.3
#29 0xff147f94 in KstViewWidget::contextMenuEvent (this=0xb0c6f8, e=0xffbed178) at kstviewwidget.cpp:337
#30 0xfd6d1340 in QWidget::event () from /usr/local/kde/lib/libqt-mt.so.3
#31 0xfd643024 in QApplication::internalNotify () from /usr/local/kde/lib/libqt-mt.so.3
#32 0xfd6438b8 in QApplication::notify () from /usr/local/kde/lib/libqt-mt.so.3
#33 0xfe0bd6d0 in KApplication::notify () from /usr/local/kde/V3.4.0/lib/libkdecore.so.4
#34 0xfd5e21ec in QETWidget::translateMouseEvent () from /usr/local/kde/lib/libqt-mt.so.3
#35 0xfd5e0210 in QApplication::x11ProcessEvent () from /usr/local/kde/lib/libqt-mt.so.3
#36 0xfd5f1f64 in QEventLoop::processEvents () from /usr/local/kde/lib/libqt-mt.so.3
#37 0xfd658e7c in QEventLoop::enterLoop () from /usr/local/kde/lib/libqt-mt.so.3
#38 0xfd658d64 in QEventLoop::exec () from /usr/local/kde/lib/libqt-mt.so.3
#39 0xfd641fb8 in QApplication::exec () from /usr/local/kde/lib/libqt-mt.so.3
#40 0x0001f3a0 in main (argc=1, argv=0xffbedc74) at main.cpp:816
Comment 1 George Staikos 2006-07-03 15:44:19 UTC
  Are you sure your code is recent?  I believe we fixed this recently.
Comment 2 Nicolas Brisset 2006-07-03 16:09:55 UTC
Latest svn from this morning (revision 557402), and a clean build ! I fear something must have slipped in...
Comment 3 George Staikos 2006-07-03 19:01:47 UTC
OK I see it.  I won't upload the DR until this is fixed.  I have it partially 
fixed here but there's more to be done.
Comment 4 Nicolas Brisset 2006-10-06 09:09:34 UTC
Shouldn't this bug have been closed ?
Comment 5 George Staikos 2006-10-06 12:00:56 UTC
true, the other was a duplicate.