-RM-90-MR-Isosurface crashes when changing parameters in the gui during re-calc
The isosurface algorithm crashes when interacting with toggling the use texture flag.
Reproduction:
- Load a scalar data set
- run the isosurface algorithm so it creates geometry and wait until it has finished
- re-run the algorithm, e.g., by changing the isovalue
- during the graphics update (after the old surface disappears but no new geometry shown, yet), toggle the flag
It seems as if a callback is called on the old geometry.
backtrace:
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff790339b in WGEShaderPropertyDefineOptions >, WGEShaderPropertyDefineOptionsIndexAdapter > > >::propUpdated (this=0x7fffb697e2d0) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/core/graphicsEngine/postprocessing/../shaders/WGEShaderPropertyDefineOptions.h:249 249 setActivationList( functor( m_property->get() ) ); (gdb) bt #0 0x00007ffff790339b in WGEShaderPropertyDefineOptions >, WGEShaderPropertyDefineOptionsIndexAdapter > > >::propUpdated (this=0x7fffb697e2d0) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/core/graphicsEngine/postprocessing/../shaders/WGEShaderPropertyDefineOptions.h:249 #1 0x00007ffff79068ad in boost::_mfi::mf0 >, WGEShaderPropertyDefineOptionsIndexAdapter > > > >::operator() (this=0x7fffb697e570, p=0x7fffb697e2d0) at /usr/include/boost/bind/mem_fn_template.hpp:49 #2 0x00007ffff7906566 in boost::_bi::list1 >, WGEShaderPropertyDefineOptionsIndexAdapter > > >*> >::operator() >, WGEShaderPropertyDefineOptionsIndexAdapter > > > >, boost::_bi::list0> (this=0x7fffb697e580, f=..., a=...) at /usr/include/boost/bind/bind.hpp:253 #3 0x00007ffff7905f63 in boost::_bi::bind_t >, WGEShaderPropertyDefineOptionsIndexAdapter > > > >, boost::_bi::list1 >, WGEShaderPropertyDefineOptionsIndexAdapter > > >*> > >::operator() (this=0x7fffb697e570) at /usr/include/boost/bind/bind_template.hpp:20 #4 0x00007ffff7905566 in boost::detail::function::void_function_obj_invoker0 >, WGEShaderPropertyDefineOptionsIndexAdapter > > > >, boost::_bi::list1 >, WGEShaderPropertyDefineOptionsIndexAdapter > > >*> > >, void>::invoke ( function_obj_ptr=...) at /usr/include/boost/function/function_template.hpp:153 #5 0x00007ffff774495b in boost::function0::operator() (this=0x7fffb697e568) at /usr/include/boost/function/function_template.hpp:1013 #6 0x00007ffff783574d in boost::signals2::detail::signal0_impl, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker::m_invoke(const boost::shared_ptr >, boost::signals2::slot0 >, boost::signals2::mutex> > &, const boost::signals2::detail::void_type *) const (this=0x7fffffffc0d0, connectionBody=...) at /usr/include/boost/signals2/detail/signal_template.hpp:351 #7 0x00007ffff783519b in boost::signals2::detail::signal0_impl, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker::operator()(const boost::shared_ptr >, boost::signals2::slot0 >, boost::signals2::mutex> > &) const (this=0x7fffffffc0d0, connectionBody=...) at /usr/include/boost/signals2/detail/signal_template.hpp:340 #8 0x00007ffff783437b in boost::signals2::detail::slot_call_iterator_t, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> >::dereference(void) const (this=0x7fffffffbed0) at /usr/include/boost/signals2/detail/slot_call_iterator.hpp:82 #9 0x00007ffff78338c6 in boost::iterator_core_access::dereference, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> > >(const boost::signals2::detail::slot_call_iterator_t, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body ---Type to continue, or q to quit--- >, boost::signals2::slot0 >, boost::signals2::mutex> > &) (f=...) at /usr/include/boost/iterator/iterator_facade.hpp:516 #10 0x00007ffff78329b0 in boost::iterator_facade, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> >, boost::signals2::detail::void_type, boost::single_pass_traversal_tag, const boost::signals2::detail::void_type&, long int>::operator*(void) const (this=0x7fffffffbed0) at /usr/include/boost/iterator/iterator_facade.hpp:634 #11 0x00007ffff7831b4e in boost::signals2::optional_last_value::operator(), int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> > >(boost::signals2::detail::slot_call_iterator_t, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> >) const (this=0x19d9320, first=..., last=...) at /usr/include/boost/signals2/optional_last_value.hpp:55 #12 0x00007ffff7830f35 in boost::signals2::detail::combiner_invoker::operator(), boost::signals2::detail::slot_call_iterator_t, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> > >(boost::signals2::optional_last_value &, boost::signals2::detail::slot_call_iterator_t, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> >, boost::signals2::detail::slot_call_iterator_t, int, std::less, boost::function, boost::function, boost::signals2::mutex>::slot_invoker, std::_List_iterator >, boost::signals2::slot0 >, boost::signals2::mutex> > >, boost::signals2::detail::connection_body >, boost::signals2::slot0 >, boost::signals2::mutex> >) const (this=0x7fffffffc00e, combiner=..., first=..., last=...) at /usr/include/boost/signals2/detail/result_type_wrapper.hpp:64 #13 0x00007ffff78305c2 in boost::signals2::detail::signal0_impl, int, std::less, boost::function, boost::function, boost::signals2::mutex>::operator()(void) ( ---Type to continue, or q to quit--- this=0x19d9230) at /usr/include/boost/signals2/detail/signal_template.hpp:246 #14 0x00007ffff783005a in boost::signals2::signal0, int, std::less, boost::function, boost::function, boost::signals2::mutex>::operator()(void) (this=0x19d90f8) at /usr/include/boost/signals2/detail/signal_template.hpp:675 #15 0x00007ffff782f778 in WCondition::notify (this=0x19d90f0) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/core/common/WCondition.cpp:44 #16 0x00007ffff76b1bac in WFlag::set (this=0x19d8e10, value=true, suppressNotification=false) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/core/gui/../common/WFlag.h:313 #17 0x00007ffff78e8b7d in WPropertyVariable::set (this=0x19d8e10, value=true, suppressNotification=false) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/core/common/WPropertyVariable.h:646 #18 0x0000000000542a22 in WPropertyBoolWidget::checkboxChanged (this=0x18f1c50) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/qt4gui/qt4/controlPanel/WPropertyBoolWidget.cpp:72 #19 0x0000000000541e16 in WPropertyBoolWidget::qt_metacall (this=0x18f1c50, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffc2d0) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build-debug/qt4gui/WPropertyBoolWidget.moc:72 #20 0x00007ffff6ece5f8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #21 0x00007ffff68ee982 in QAbstractButton::toggled(bool) () from /usr/lib/libQtGui.so.4 #22 0x00007ffff66397ce in QAbstractButton::setChecked(bool) () from /usr/lib/libQtGui.so.4 #23 0x00007ffff664c0c6 in QCheckBox::nextCheckState() () from /usr/lib/libQtGui.so.4 #24 0x00007ffff663946a in ?? () from /usr/lib/libQtGui.so.4 #25 0x00007ffff663971c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #26 0x00007ffff62c7cc8 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #27 0x00007ffff62769f4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #28 0x00007ffff627bdc3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #29 0x00007ffff6eb949c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #30 0x00007ffff6277a1d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) () from /usr/lib/libQtGui.so.4 #31 0x00007ffff62f9190 in ?? () from /usr/lib/libQtGui.so.4 #32 0x00007ffff62f7ab7 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #33 0x00007ffff6320842 in ?? () from /usr/lib/libQtGui.so.4 #34 0x00007ffff09b085d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #35 0x00007ffff09b1038 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #36 0x00007ffff09b12c9 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #37 0x00007ffff6ee43ef in QEventDispatcherGlib::processEvents(QFlags) () from /usr/lib/libQtCore.so.4 #38 0x00007ffff63204de in ?? () from /usr/lib/libQtGui.so.4 #39 0x00007ffff6eb8882 in QEventLoop::processEvents(QFlags) () from /usr/lib/libQtCore.so.4 #40 0x00007ffff6eb8abc in QEventLoop::exec(QFlags) () from /usr/lib/libQtCore.so.4 #41 0x00007ffff6ebcecb in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #42 0x00000000004d3d06 in WQt4Gui::run (this=0x8205c0) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/qt4gui/qt4/WQt4Gui.cpp:200 #43 0x000000000057378a in main (argc=1, argv=0x7fffffffe718) at /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/src/qt4gui/OpenWalnut.cpp:157
(from redmine: created on 2011-09-22, closed on 2012-07-13)