Summary: | Segfault while simultaneously reading and plotting data | ||
---|---|---|---|
Product: | [Applications] kst | Reporter: | Michael Vincent <bug.zilla.vynce> |
Component: | general | Assignee: | kst |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | arwalker |
Priority: | NOR | ||
Version: | 1.8.0 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Adds mutexes to a couple of functions that were causing a segfault |
Description
Michael Vincent
2009-09-29 01:28:54 UTC
Created attachment 37228 [details]
Adds mutexes to a couple of functions that were causing a segfault
I've attached my brute force mutex patch.
SVN commit 1029881 by arwalker: BUG:208832 fix threading problem with updating and plotting of vectors M +2 -0 kst2dplot.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1029881 Michael, many thanks for the bug report. Particularly with the stack traces, which always makes life much simpler. I think the implemented fix is a little cleaner and has less of a performance impact on the plotting. I also think/hope I've convinced myself that it won't cause deadlocks anywhere. No problem. I'm glad I could help. I'll let you know if I run into any deadlocks ;) Doh, I spoke too soon. It's still segfaulting occasionally for me. It does seem to be less frequent now though. The backtraces look identical to me. Program received signal SIGSEGV, Segmentation fault. 0x005af59e in KstVector::interpolate (this=0x8668d10, in_i=27082, ns_i=46809) at kstvector.cpp:202 202 GENERATE_INTERPOLATION Thread 1: #0 0x005af59e in KstVector::interpolate (this=0x8668d10, in_i=27082, ns_i=46809) at kstvector.cpp:202 #1 0x009de84b in KstVCurve::paint (this=0x88348b8, context=@0xbfffc9f4) at kstvcurve.cpp:1475 #2 0x00bf0b68 in Kst2DPlot::draw (this=0x8870360, p=@0xbfffcd20) at kst2dplot.cpp:2903 #3 0x00bf13b6 in Kst2DPlot::draw (this=0x8870360) at kst2dplot.cpp:2737 #4 0x00bf148c in Kst2DPlot::updateSelf (this=0x8870360) at kst2dplot.cpp:2661 #5 0x00c388e5 in KstViewObject::paintUpdate (this=0x8870360) at kstviewobject.cpp:426 #6 0x00c3b837 in KstViewObject::paint (this=0x8870360, p=@0xbfffd028, bounds=@0xbfffcfc8) at kstviewobject.cpp:340 #7 0x00c3bb44 in KstViewObject::paint (this=0x84ca678, p=@0xbfffd028, bounds=@0xbfffd198) at kstviewobject.cpp:373 #8 0x00c5a05f in KstTopLevelView::paint (this=0x84ca678, p=@0xbfffd028, bounds=@0xbfffd198) at ksttoplevelview.cpp:190 #9 0x00c5130f in KstTopLevelView::paint (this=0x84ca678, type=KstPainter::P_PAINT, bounds=@0xbfffd198) at ksttoplevelview.cpp:209 #10 0x00c51442 in KstTopLevelView::paint (this=0x84ca678, type=KstPainter::P_PAINT) at ksttoplevelview.cpp:199 #11 0x00d52199 in KstApp::paintAll (this=0x80b7a50, pt=KstPainter::P_PAINT) at kst.cpp:1970 #12 0x0124de62 in KstBindCurveCollection::append (this=0xb5bfa188, exec=0xbfffd778, args=@0xbfffd374) at bind_curvecollection.cpp:155 #13 0x0124818e in KstBindCollection::call (this=0x8852cf0, exec=0xbfffd778, self=@0xbfffd380, args=@0xbfffd374) at bind_collection.cpp:116 #14 0x053e7cb9 in KJS::Object::call (this=0xbfffd398, exec=0xbfffd778, thisObj=@0xbfffd380, args=@0xbfffd374) at object.cpp:73 #15 0x05401593 in KJS::FunctionCallNode::evaluate (this=0x82e4838, exec=0xbfffd778) at nodes.cpp:870 #16 0x053ff006 in KJS::ExprStatementNode::execute (this=0x82e4850, exec=0xbfffd778) at nodes.cpp:1980 #17 0x053fd638 in KJS::SourceElementsNode::execute (this=0x8303ad8, exec=0xbfffd778) at nodes.cpp:3114 #18 0x053f87a9 in KJS::BlockNode::execute (this=0x84b9fb0, exec=0xbfffd778) at nodes.cpp:1942 #19 0x053fe10c in KJS::ForNode::execute (this=0x84b8438, exec=0xbfffd778) at nodes.cpp:2199 #20 0x053fd638 in KJS::SourceElementsNode::execute (this=0x84d5988, exec=0xbfffd778) at nodes.cpp:3114 #21 0x053f87a9 in KJS::BlockNode::execute (this=0x848ca80, exec=0xbfffd778) at nodes.cpp:1942 #22 0x05401f9d in KJS::InterpreterImp::evaluate (this=0x8429b20, code=@0xbfffd834, thisV=@0xbfffd838) at internal.cpp:904 #23 0x0540237a in KJS::Interpreter::evaluate (this=0x8471490, code=@0xbfffd834, thisV=@0xbfffd838) at interpreter.cpp:166 #24 0x012cc227 in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, result=@0x8321544, script=@0xbfffd888, self=@0xbfffd90c) at kjsembedpart.cpp:262 #25 0x012ca76c in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, script=@0xbfffd888, self=@0xbfffd90c) at kjsembedpart.cpp:256 #26 0x012cd499 in KJSEmbed::KJSEmbedPart::runFile (this=0x83214b0, name=@0xbfffd91c, self=@0xbfffd90c) at kjsembedpart.cpp:294 #27 0x01220021 in KstBindKst::loadScript (this=0x865e7e8, exec=0xbfffdc98, args=@0xbfffda14) at bind_kst.cpp:207 #28 0x0121f47e in KstBindKst::call (this=0x865e858, exec=0xbfffdc98, self=@0xbfffda20, args=@0xbfffda14) at bind_kst.cpp:182 #29 0x053e7cb9 in KJS::Object::call (this=0xbfffda38, exec=0xbfffdc98, thisObj=@0xbfffda20, args=@0xbfffda14) at object.cpp:73 #30 0x05401593 in KJS::FunctionCallNode::evaluate (this=0x844e0e8, exec=0xbfffdc98) at nodes.cpp:870 #31 0x053ff006 in KJS::ExprStatementNode::execute (this=0x822db20, exec=0xbfffdc98) at nodes.cpp:1980 #32 0x053fd638 in KJS::SourceElementsNode::execute (this=0x8158030, exec=0xbfffdc98) at nodes.cpp:3114 #33 0x053f87a9 in KJS::BlockNode::execute (this=0x827ce48, exec=0xbfffdc98) at nodes.cpp:1942 #34 0x05401f9d in KJS::InterpreterImp::evaluate (this=0x8429b20, code=@0xbfffdd54, thisV=@0xbfffdd58) at internal.cpp:904 #35 0x0540237a in KJS::Interpreter::evaluate (this=0x8471490, code=@0xbfffdd54, thisV=@0xbfffdd58) at interpreter.cpp:166 #36 0x012cc227 in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, result=@0xbfffdda8, script=@0xbfffde84, self=@0xbfffdde0) at kjsembedpart.cpp:262 #37 0x01203fd3 in JSIfaceImpl::evaluate (this=0x85e8338, script=@0xbfffde84) at jsiface_impl.cpp:50 #38 0x012c86ad in JSIface::process (this=0x85e8338, fun=@0xbfffe0e4, data=@0xbfffe0dc, replyType=@0xbfffe0d4, replyData=@0xbfffe0cc) at jsiface_skel.cpp:33 #39 0x00485f8e in DCOPClient::receive (this=0x809bff0, objId=@0xbfffe0ec, fun=@0xbfffe0e4, data=@0xbfffe0dc, replyType=@0xbfffe0d4, replyData=@0xbfffe0cc) at dcopclient.cpp:1643 #40 0x0048b3d1 in DCOPProcessInternal (d=0x80a3dc8, opcode=2, key=69, dataReceived=@0xbfffe1c0, canPost=true) at dcopclient.cpp:520 #41 0x0048be2a in DCOPProcessMessage (iceConn=0x809fcc0, clientObject=0x80a3dc8, opcode=2, length=544, replyWait=0x0, replyWaitRet=0xbfffe214) at dcopclient.cpp:432 #42 0x00498e14 in KDE_IceProcessMessages (iceConn=0x809fcc0, replyWait=0x0, replyReadyRet=0x0) at process.c:326 #43 0x0047c6df in DCOPClient::processSocketData (this=0x809bff0, fd=12) at dcopclient.cpp:2014 #44 0x0048bb34 in DCOPClient::qt_invoke (this=0x809bff0, _id=2, _o=0xbfffe36c) at ./dcopclient.moc:176 #45 0x022b0e4a in QObject::activate_signal (this=0x809f670, clist=0x809f8e0, o=0xbfffe36c) at kernel/qobject.cpp:2359 #46 0x022b2c43 in QObject::activate_signal (this=0x809f670, signal=2, param=12) at kernel/qobject.cpp:2452 #47 0x0264a6c0 in QSocketNotifier::activated (this=0x809f670, t0=12) at .moc/release-shared-mt/moc_qsocketnotifier.cpp:85 #48 0x022d3267 in QSocketNotifier::event (this=0x809f670, e=0xbfffe6a8) at kernel/qsocketnotifier.cpp:261 #49 0x02247f75 in QApplication::internalNotify (this=0xbffff170, receiver=0x809f670, e=0xbfffe6a8) at kernel/qapplication.cpp:2638 #50 0x022490c6 in QApplication::notify (this=0xbffff170, receiver=0x809f670, e=0xbfffe6a8) at kernel/qapplication.cpp:2375 #51 0x02bf1262 in KApplication::notify (this=0xbffff170, receiver=0x809f670, event=0xbfffe6a8) at kapplication.cpp:550 #52 0x0223b961 in QApplication::sendEvent () at kernel/qapplication.h:523 #53 QEventLoop::activateSocketNotifiers (this=0x8099110) at kernel/qeventloop_unix.cpp:581 #54 0x021f0aa3 in QEventLoop::processEvents (this=0x8099110, flags=4) at kernel/qeventloop_x11.cpp:386 #55 0x02262630 in QEventLoop::enterLoop (this=0x8099110) at kernel/qeventloop.cpp:201 #56 0x022624f6 in QEventLoop::exec (this=0x8099110) at kernel/qeventloop.cpp:148 #57 0x0224864f in QApplication::exec (this=0xbffff170) at kernel/qapplication.cpp:2761 #58 0x080539eb in main (argc=1, argv=0xbffff2f4) at main.cpp:854 Thread 2: #0 0x005b0bc0 in KstVector::resize (this=0x8668d10, sz=62412, reinit=true) at kstvector.cpp:445 #1 0x005b9e0d in KstRVector::doUpdate (this=0x8668d10, force=false) at kstrvector.cpp:629 #2 0x005ba4ac in KstRVector::update (this=0x8668d10, update_counter=9) at kstrvector.cpp:459 #3 0x009dad42 in KstVCurve::update (this=0x866ba28, update_counter=9) at kstvcurve.cpp:249 #4 0x00cdd5c2 in UpdateThread::doUpdates (this=0x858e748, force=false, gotData=0xb7b1633b) at updatethread.cpp:212 #5 0x00cdedc7 in UpdateThread::run (this=0x858e748) at updatethread.cpp:114 #6 0x022414bc in QThreadInstance::start (_arg=0x85900c4) at kernel/qthread_unix.cpp:122 #7 0x0021251f in start_thread (arg=0xb7b16b90) at pthread_create.c:297 #8 0x010de04e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Hi Michael, It seems that the problem is that two different curves are using the same vector, so the additional lock I put in doesn't help in this slightly more unusual case. I'll work out where best tio put a lock that encompasses this situtation. You seem to have a real aptitude for finding obscure race conditions. Many thnaks, Andrew ----- Original Message ----- From: "Michael Vincent" <bug.zilla.vynce@neverbox.com> To: <arwalker@sumusltd.com> Sent: Thursday, October 01, 2009 11:01 AM Subject: [Bug 208832] Segfault while simultaneously reading and plotting data > https://bugs.kde.org/show_bug.cgi?id=208832 > > > > > > --- Comment #5 from Michael Vincent <bug zilla vynce neverbox com> > 2009-10-01 20:00:55 --- > Doh, I spoke too soon. It's still segfaulting occasionally for me. It does > seem > to be less frequent now though. The backtraces look identical to me. > > Program received signal SIGSEGV, Segmentation fault. > 0x005af59e in KstVector::interpolate (this=0x8668d10, in_i=27082, > ns_i=46809) > at kstvector.cpp:202 > 202 GENERATE_INTERPOLATION > > > Thread 1: > > #0 0x005af59e in KstVector::interpolate (this=0x8668d10, in_i=27082, > ns_i=46809) at kstvector.cpp:202 > #1 0x009de84b in KstVCurve::paint (this=0x88348b8, context=@0xbfffc9f4) > at kstvcurve.cpp:1475 > #2 0x00bf0b68 in Kst2DPlot::draw (this=0x8870360, p=@0xbfffcd20) > at kst2dplot.cpp:2903 > #3 0x00bf13b6 in Kst2DPlot::draw (this=0x8870360) at kst2dplot.cpp:2737 > #4 0x00bf148c in Kst2DPlot::updateSelf (this=0x8870360) at > kst2dplot.cpp:2661 > #5 0x00c388e5 in KstViewObject::paintUpdate (this=0x8870360) > at kstviewobject.cpp:426 > #6 0x00c3b837 in KstViewObject::paint (this=0x8870360, p=@0xbfffd028, > bounds=@0xbfffcfc8) at kstviewobject.cpp:340 > #7 0x00c3bb44 in KstViewObject::paint (this=0x84ca678, p=@0xbfffd028, > bounds=@0xbfffd198) at kstviewobject.cpp:373 > #8 0x00c5a05f in KstTopLevelView::paint (this=0x84ca678, p=@0xbfffd028, > bounds=@0xbfffd198) at ksttoplevelview.cpp:190 > #9 0x00c5130f in KstTopLevelView::paint (this=0x84ca678, > type=KstPainter::P_PAINT, bounds=@0xbfffd198) at > ksttoplevelview.cpp:209 > #10 0x00c51442 in KstTopLevelView::paint (this=0x84ca678, > type=KstPainter::P_PAINT) at ksttoplevelview.cpp:199 > #11 0x00d52199 in KstApp::paintAll (this=0x80b7a50, > pt=KstPainter::P_PAINT) > at kst.cpp:1970 > #12 0x0124de62 in KstBindCurveCollection::append (this=0xb5bfa188, > exec=0xbfffd778, args=@0xbfffd374) at bind_curvecollection.cpp:155 > #13 0x0124818e in KstBindCollection::call (this=0x8852cf0, > exec=0xbfffd778, > self=@0xbfffd380, args=@0xbfffd374) at bind_collection.cpp:116 > #14 0x053e7cb9 in KJS::Object::call (this=0xbfffd398, exec=0xbfffd778, > thisObj=@0xbfffd380, args=@0xbfffd374) at object.cpp:73 > #15 0x05401593 in KJS::FunctionCallNode::evaluate (this=0x82e4838, > exec=0xbfffd778) at nodes.cpp:870 > #16 0x053ff006 in KJS::ExprStatementNode::execute (this=0x82e4850, > exec=0xbfffd778) at nodes.cpp:1980 > #17 0x053fd638 in KJS::SourceElementsNode::execute (this=0x8303ad8, > exec=0xbfffd778) at nodes.cpp:3114 > #18 0x053f87a9 in KJS::BlockNode::execute (this=0x84b9fb0, > exec=0xbfffd778) > at nodes.cpp:1942 > #19 0x053fe10c in KJS::ForNode::execute (this=0x84b8438, exec=0xbfffd778) > at nodes.cpp:2199 > #20 0x053fd638 in KJS::SourceElementsNode::execute (this=0x84d5988, > exec=0xbfffd778) at nodes.cpp:3114 > #21 0x053f87a9 in KJS::BlockNode::execute (this=0x848ca80, > exec=0xbfffd778) > at nodes.cpp:1942 > #22 0x05401f9d in KJS::InterpreterImp::evaluate (this=0x8429b20, > code=@0xbfffd834, thisV=@0xbfffd838) at internal.cpp:904 > #23 0x0540237a in KJS::Interpreter::evaluate (this=0x8471490, > code=@0xbfffd834, thisV=@0xbfffd838) at interpreter.cpp:166 > #24 0x012cc227 in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, > result=@0x8321544, script=@0xbfffd888, self=@0xbfffd90c) > at kjsembedpart.cpp:262 > #25 0x012ca76c in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, > script=@0xbfffd888, self=@0xbfffd90c) at kjsembedpart.cpp:256 > #26 0x012cd499 in KJSEmbed::KJSEmbedPart::runFile (this=0x83214b0, > name=@0xbfffd91c, self=@0xbfffd90c) at kjsembedpart.cpp:294 > #27 0x01220021 in KstBindKst::loadScript (this=0x865e7e8, exec=0xbfffdc98, > args=@0xbfffda14) at bind_kst.cpp:207 > #28 0x0121f47e in KstBindKst::call (this=0x865e858, exec=0xbfffdc98, > self=@0xbfffda20, args=@0xbfffda14) at bind_kst.cpp:182 > #29 0x053e7cb9 in KJS::Object::call (this=0xbfffda38, exec=0xbfffdc98, > thisObj=@0xbfffda20, args=@0xbfffda14) at object.cpp:73 > #30 0x05401593 in KJS::FunctionCallNode::evaluate (this=0x844e0e8, > exec=0xbfffdc98) at nodes.cpp:870 > #31 0x053ff006 in KJS::ExprStatementNode::execute (this=0x822db20, > exec=0xbfffdc98) at nodes.cpp:1980 > #32 0x053fd638 in KJS::SourceElementsNode::execute (this=0x8158030, > exec=0xbfffdc98) at nodes.cpp:3114 > #33 0x053f87a9 in KJS::BlockNode::execute (this=0x827ce48, > exec=0xbfffdc98) > at nodes.cpp:1942 > #34 0x05401f9d in KJS::InterpreterImp::evaluate (this=0x8429b20, > code=@0xbfffdd54, thisV=@0xbfffdd58) at internal.cpp:904 > #35 0x0540237a in KJS::Interpreter::evaluate (this=0x8471490, > code=@0xbfffdd54, thisV=@0xbfffdd58) at interpreter.cpp:166 > #36 0x012cc227 in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, > result=@0xbfffdda8, script=@0xbfffde84, self=@0xbfffdde0) > at kjsembedpart.cpp:262 > #37 0x01203fd3 in JSIfaceImpl::evaluate (this=0x85e8338, > script=@0xbfffde84) > at jsiface_impl.cpp:50 > #38 0x012c86ad in JSIface::process (this=0x85e8338, fun=@0xbfffe0e4, > data=@0xbfffe0dc, replyType=@0xbfffe0d4, replyData=@0xbfffe0cc) > at jsiface_skel.cpp:33 > #39 0x00485f8e in DCOPClient::receive (this=0x809bff0, objId=@0xbfffe0ec, > fun=@0xbfffe0e4, data=@0xbfffe0dc, replyType=@0xbfffe0d4, > replyData=@0xbfffe0cc) at dcopclient.cpp:1643 > #40 0x0048b3d1 in DCOPProcessInternal (d=0x80a3dc8, opcode=2, key=69, > dataReceived=@0xbfffe1c0, canPost=true) at dcopclient.cpp:520 > #41 0x0048be2a in DCOPProcessMessage (iceConn=0x809fcc0, > clientObject=0x80a3dc8, opcode=2, length=544, replyWait=0x0, > replyWaitRet=0xbfffe214) at dcopclient.cpp:432 > #42 0x00498e14 in KDE_IceProcessMessages (iceConn=0x809fcc0, > replyWait=0x0, > replyReadyRet=0x0) at process.c:326 > #43 0x0047c6df in DCOPClient::processSocketData (this=0x809bff0, fd=12) > at dcopclient.cpp:2014 > #44 0x0048bb34 in DCOPClient::qt_invoke (this=0x809bff0, _id=2, > _o=0xbfffe36c) > at ./dcopclient.moc:176 > #45 0x022b0e4a in QObject::activate_signal (this=0x809f670, > clist=0x809f8e0, > o=0xbfffe36c) at kernel/qobject.cpp:2359 > #46 0x022b2c43 in QObject::activate_signal (this=0x809f670, signal=2, > param=12) > at kernel/qobject.cpp:2452 > #47 0x0264a6c0 in QSocketNotifier::activated (this=0x809f670, t0=12) > at .moc/release-shared-mt/moc_qsocketnotifier.cpp:85 > #48 0x022d3267 in QSocketNotifier::event (this=0x809f670, e=0xbfffe6a8) > at kernel/qsocketnotifier.cpp:261 > #49 0x02247f75 in QApplication::internalNotify (this=0xbffff170, > receiver=0x809f670, e=0xbfffe6a8) at kernel/qapplication.cpp:2638 > #50 0x022490c6 in QApplication::notify (this=0xbffff170, > receiver=0x809f670, > e=0xbfffe6a8) at kernel/qapplication.cpp:2375 > #51 0x02bf1262 in KApplication::notify (this=0xbffff170, > receiver=0x809f670, > event=0xbfffe6a8) at kapplication.cpp:550 > #52 0x0223b961 in QApplication::sendEvent () at kernel/qapplication.h:523 > #53 QEventLoop::activateSocketNotifiers (this=0x8099110) > at kernel/qeventloop_unix.cpp:581 > #54 0x021f0aa3 in QEventLoop::processEvents (this=0x8099110, flags=4) > at kernel/qeventloop_x11.cpp:386 > #55 0x02262630 in QEventLoop::enterLoop (this=0x8099110) > at kernel/qeventloop.cpp:201 > #56 0x022624f6 in QEventLoop::exec (this=0x8099110) > at kernel/qeventloop.cpp:148 > #57 0x0224864f in QApplication::exec (this=0xbffff170) > at kernel/qapplication.cpp:2761 > #58 0x080539eb in main (argc=1, argv=0xbffff2f4) at main.cpp:854 > > > Thread 2: > > #0 0x005b0bc0 in KstVector::resize (this=0x8668d10, sz=62412, > reinit=true) > at kstvector.cpp:445 > #1 0x005b9e0d in KstRVector::doUpdate (this=0x8668d10, force=false) > at kstrvector.cpp:629 > #2 0x005ba4ac in KstRVector::update (this=0x8668d10, update_counter=9) > at kstrvector.cpp:459 > #3 0x009dad42 in KstVCurve::update (this=0x866ba28, update_counter=9) > at kstvcurve.cpp:249 > #4 0x00cdd5c2 in UpdateThread::doUpdates (this=0x858e748, force=false, > gotData=0xb7b1633b) at updatethread.cpp:212 > #5 0x00cdedc7 in UpdateThread::run (this=0x858e748) at > updatethread.cpp:114 > #6 0x022414bc in QThreadInstance::start (_arg=0x85900c4) > at kernel/qthread_unix.cpp:122 > #7 0x0021251f in start_thread (arg=0xb7b16b90) at pthread_create.c:297 > #8 0x010de04e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 > > -- > Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. > SVN commit 1030160 by arwalker: CCBUG:208832 allow for possibility that vector being resized is also being painted, possibly within a different parent curve M +4 -0 libkst/kstvector.cpp M +0 -2 libkstapp/kst2dplot.cpp M +29 -0 libkstmath/kstvcurve.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1030160 Hi Michael, I've checked in what I hope is a better fix. It would be much appreciated if you could run the same tests again. Andrew ----- Original Message ----- From: "Michael Vincent" <bug.zilla.vynce@neverbox.com> To: <arwalker@sumusltd.com> Sent: Thursday, October 01, 2009 11:01 AM Subject: [Bug 208832] Segfault while simultaneously reading and plotting data > https://bugs.kde.org/show_bug.cgi?id=208832 > > > > > > --- Comment #5 from Michael Vincent <bug zilla vynce neverbox com> > 2009-10-01 20:00:55 --- > Doh, I spoke too soon. It's still segfaulting occasionally for me. It does > seem > to be less frequent now though. The backtraces look identical to me. > > Program received signal SIGSEGV, Segmentation fault. > 0x005af59e in KstVector::interpolate (this=0x8668d10, in_i=27082, > ns_i=46809) > at kstvector.cpp:202 > 202 GENERATE_INTERPOLATION > > > Thread 1: > > #0 0x005af59e in KstVector::interpolate (this=0x8668d10, in_i=27082, > ns_i=46809) at kstvector.cpp:202 > #1 0x009de84b in KstVCurve::paint (this=0x88348b8, context=@0xbfffc9f4) > at kstvcurve.cpp:1475 > #2 0x00bf0b68 in Kst2DPlot::draw (this=0x8870360, p=@0xbfffcd20) > at kst2dplot.cpp:2903 > #3 0x00bf13b6 in Kst2DPlot::draw (this=0x8870360) at kst2dplot.cpp:2737 > #4 0x00bf148c in Kst2DPlot::updateSelf (this=0x8870360) at > kst2dplot.cpp:2661 > #5 0x00c388e5 in KstViewObject::paintUpdate (this=0x8870360) > at kstviewobject.cpp:426 > #6 0x00c3b837 in KstViewObject::paint (this=0x8870360, p=@0xbfffd028, > bounds=@0xbfffcfc8) at kstviewobject.cpp:340 > #7 0x00c3bb44 in KstViewObject::paint (this=0x84ca678, p=@0xbfffd028, > bounds=@0xbfffd198) at kstviewobject.cpp:373 > #8 0x00c5a05f in KstTopLevelView::paint (this=0x84ca678, p=@0xbfffd028, > bounds=@0xbfffd198) at ksttoplevelview.cpp:190 > #9 0x00c5130f in KstTopLevelView::paint (this=0x84ca678, > type=KstPainter::P_PAINT, bounds=@0xbfffd198) at > ksttoplevelview.cpp:209 > #10 0x00c51442 in KstTopLevelView::paint (this=0x84ca678, > type=KstPainter::P_PAINT) at ksttoplevelview.cpp:199 > #11 0x00d52199 in KstApp::paintAll (this=0x80b7a50, > pt=KstPainter::P_PAINT) > at kst.cpp:1970 > #12 0x0124de62 in KstBindCurveCollection::append (this=0xb5bfa188, > exec=0xbfffd778, args=@0xbfffd374) at bind_curvecollection.cpp:155 > #13 0x0124818e in KstBindCollection::call (this=0x8852cf0, > exec=0xbfffd778, > self=@0xbfffd380, args=@0xbfffd374) at bind_collection.cpp:116 > #14 0x053e7cb9 in KJS::Object::call (this=0xbfffd398, exec=0xbfffd778, > thisObj=@0xbfffd380, args=@0xbfffd374) at object.cpp:73 > #15 0x05401593 in KJS::FunctionCallNode::evaluate (this=0x82e4838, > exec=0xbfffd778) at nodes.cpp:870 > #16 0x053ff006 in KJS::ExprStatementNode::execute (this=0x82e4850, > exec=0xbfffd778) at nodes.cpp:1980 > #17 0x053fd638 in KJS::SourceElementsNode::execute (this=0x8303ad8, > exec=0xbfffd778) at nodes.cpp:3114 > #18 0x053f87a9 in KJS::BlockNode::execute (this=0x84b9fb0, > exec=0xbfffd778) > at nodes.cpp:1942 > #19 0x053fe10c in KJS::ForNode::execute (this=0x84b8438, exec=0xbfffd778) > at nodes.cpp:2199 > #20 0x053fd638 in KJS::SourceElementsNode::execute (this=0x84d5988, > exec=0xbfffd778) at nodes.cpp:3114 > #21 0x053f87a9 in KJS::BlockNode::execute (this=0x848ca80, > exec=0xbfffd778) > at nodes.cpp:1942 > #22 0x05401f9d in KJS::InterpreterImp::evaluate (this=0x8429b20, > code=@0xbfffd834, thisV=@0xbfffd838) at internal.cpp:904 > #23 0x0540237a in KJS::Interpreter::evaluate (this=0x8471490, > code=@0xbfffd834, thisV=@0xbfffd838) at interpreter.cpp:166 > #24 0x012cc227 in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, > result=@0x8321544, script=@0xbfffd888, self=@0xbfffd90c) > at kjsembedpart.cpp:262 > #25 0x012ca76c in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, > script=@0xbfffd888, self=@0xbfffd90c) at kjsembedpart.cpp:256 > #26 0x012cd499 in KJSEmbed::KJSEmbedPart::runFile (this=0x83214b0, > name=@0xbfffd91c, self=@0xbfffd90c) at kjsembedpart.cpp:294 > #27 0x01220021 in KstBindKst::loadScript (this=0x865e7e8, exec=0xbfffdc98, > args=@0xbfffda14) at bind_kst.cpp:207 > #28 0x0121f47e in KstBindKst::call (this=0x865e858, exec=0xbfffdc98, > self=@0xbfffda20, args=@0xbfffda14) at bind_kst.cpp:182 > #29 0x053e7cb9 in KJS::Object::call (this=0xbfffda38, exec=0xbfffdc98, > thisObj=@0xbfffda20, args=@0xbfffda14) at object.cpp:73 > #30 0x05401593 in KJS::FunctionCallNode::evaluate (this=0x844e0e8, > exec=0xbfffdc98) at nodes.cpp:870 > #31 0x053ff006 in KJS::ExprStatementNode::execute (this=0x822db20, > exec=0xbfffdc98) at nodes.cpp:1980 > #32 0x053fd638 in KJS::SourceElementsNode::execute (this=0x8158030, > exec=0xbfffdc98) at nodes.cpp:3114 > #33 0x053f87a9 in KJS::BlockNode::execute (this=0x827ce48, > exec=0xbfffdc98) > at nodes.cpp:1942 > #34 0x05401f9d in KJS::InterpreterImp::evaluate (this=0x8429b20, > code=@0xbfffdd54, thisV=@0xbfffdd58) at internal.cpp:904 > #35 0x0540237a in KJS::Interpreter::evaluate (this=0x8471490, > code=@0xbfffdd54, thisV=@0xbfffdd58) at interpreter.cpp:166 > #36 0x012cc227 in KJSEmbed::KJSEmbedPart::execute (this=0x83214b0, > result=@0xbfffdda8, script=@0xbfffde84, self=@0xbfffdde0) > at kjsembedpart.cpp:262 > #37 0x01203fd3 in JSIfaceImpl::evaluate (this=0x85e8338, > script=@0xbfffde84) > at jsiface_impl.cpp:50 > #38 0x012c86ad in JSIface::process (this=0x85e8338, fun=@0xbfffe0e4, > data=@0xbfffe0dc, replyType=@0xbfffe0d4, replyData=@0xbfffe0cc) > at jsiface_skel.cpp:33 > #39 0x00485f8e in DCOPClient::receive (this=0x809bff0, objId=@0xbfffe0ec, > fun=@0xbfffe0e4, data=@0xbfffe0dc, replyType=@0xbfffe0d4, > replyData=@0xbfffe0cc) at dcopclient.cpp:1643 > #40 0x0048b3d1 in DCOPProcessInternal (d=0x80a3dc8, opcode=2, key=69, > dataReceived=@0xbfffe1c0, canPost=true) at dcopclient.cpp:520 > #41 0x0048be2a in DCOPProcessMessage (iceConn=0x809fcc0, > clientObject=0x80a3dc8, opcode=2, length=544, replyWait=0x0, > replyWaitRet=0xbfffe214) at dcopclient.cpp:432 > #42 0x00498e14 in KDE_IceProcessMessages (iceConn=0x809fcc0, > replyWait=0x0, > replyReadyRet=0x0) at process.c:326 > #43 0x0047c6df in DCOPClient::processSocketData (this=0x809bff0, fd=12) > at dcopclient.cpp:2014 > #44 0x0048bb34 in DCOPClient::qt_invoke (this=0x809bff0, _id=2, > _o=0xbfffe36c) > at ./dcopclient.moc:176 > #45 0x022b0e4a in QObject::activate_signal (this=0x809f670, > clist=0x809f8e0, > o=0xbfffe36c) at kernel/qobject.cpp:2359 > #46 0x022b2c43 in QObject::activate_signal (this=0x809f670, signal=2, > param=12) > at kernel/qobject.cpp:2452 > #47 0x0264a6c0 in QSocketNotifier::activated (this=0x809f670, t0=12) > at .moc/release-shared-mt/moc_qsocketnotifier.cpp:85 > #48 0x022d3267 in QSocketNotifier::event (this=0x809f670, e=0xbfffe6a8) > at kernel/qsocketnotifier.cpp:261 > #49 0x02247f75 in QApplication::internalNotify (this=0xbffff170, > receiver=0x809f670, e=0xbfffe6a8) at kernel/qapplication.cpp:2638 > #50 0x022490c6 in QApplication::notify (this=0xbffff170, > receiver=0x809f670, > e=0xbfffe6a8) at kernel/qapplication.cpp:2375 > #51 0x02bf1262 in KApplication::notify (this=0xbffff170, > receiver=0x809f670, > event=0xbfffe6a8) at kapplication.cpp:550 > #52 0x0223b961 in QApplication::sendEvent () at kernel/qapplication.h:523 > #53 QEventLoop::activateSocketNotifiers (this=0x8099110) > at kernel/qeventloop_unix.cpp:581 > #54 0x021f0aa3 in QEventLoop::processEvents (this=0x8099110, flags=4) > at kernel/qeventloop_x11.cpp:386 > #55 0x02262630 in QEventLoop::enterLoop (this=0x8099110) > at kernel/qeventloop.cpp:201 > #56 0x022624f6 in QEventLoop::exec (this=0x8099110) > at kernel/qeventloop.cpp:148 > #57 0x0224864f in QApplication::exec (this=0xbffff170) > at kernel/qapplication.cpp:2761 > #58 0x080539eb in main (argc=1, argv=0xbffff2f4) at main.cpp:854 > > > Thread 2: > > #0 0x005b0bc0 in KstVector::resize (this=0x8668d10, sz=62412, > reinit=true) > at kstvector.cpp:445 > #1 0x005b9e0d in KstRVector::doUpdate (this=0x8668d10, force=false) > at kstrvector.cpp:629 > #2 0x005ba4ac in KstRVector::update (this=0x8668d10, update_counter=9) > at kstrvector.cpp:459 > #3 0x009dad42 in KstVCurve::update (this=0x866ba28, update_counter=9) > at kstvcurve.cpp:249 > #4 0x00cdd5c2 in UpdateThread::doUpdates (this=0x858e748, force=false, > gotData=0xb7b1633b) at updatethread.cpp:212 > #5 0x00cdedc7 in UpdateThread::run (this=0x858e748) at > updatethread.cpp:114 > #6 0x022414bc in QThreadInstance::start (_arg=0x85900c4) > at kernel/qthread_unix.cpp:122 > #7 0x0021251f in start_thread (arg=0xb7b16b90) at pthread_create.c:297 > #8 0x010de04e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 > > -- > Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. > Your new fix is working great! No crashes so far. Excellent news. Thanks. Andrew ----- Original Message ----- From: "Michael Vincent" <bug.zilla.vynce@neverbox.com> To: <arwalker@sumusltd.com> Sent: Thursday, October 01, 2009 12:56 PM Subject: [Bug 208832] Segfault while simultaneously reading and plotting data > https://bugs.kde.org/show_bug.cgi?id=208832 > > > > > > --- Comment #9 from Michael Vincent <bug zilla vynce neverbox com> > 2009-10-01 21:56:23 --- > Your new fix is working great! No crashes so far. > > -- > Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email > ------- You are receiving this mail because: ------- > You are on the CC list for the bug. > |