-RM-414-MR-SegFault when loading data in default branch
When trying to load fiber data, I get the segfault below (see (A)). This started in revision 13587e62bfa8 "[ADD] Now the ModuleOutputConnector has a dataChangedCondition as same as the input connector has. This is to ease to listen in container modules on the output of certain data. Ofcourse we could subscribe to the signal instead, but the InputConnector does provide the same convenience, hence this feature.". The changes themselves seem fine to me when looking at them. This seems to be a more difficult problem. The segfault does not occur in the parent revision (faf462d70126).
If I update to revision e67d923e878b (2 up, "[CHANGE] Moved m_dataChangedCondition one level up in the inheritance hierarchy, as alls childs WModuleInputConnector and WModuleOutputConnector make use of this condition. Also changed some minor style things and preferred the contructor init list over direct member initialization in WModuleConnector."), I will get a different error instead (see (B)).
OS/library details:
Debian unstable, kernel 3.16.0-4-amd64 libopenscenegraph-dev 3.2.1-6+b1 libboost 1.55 (libboost-system: 1.55.0+dfsg-4)
Can anyone confirm this problem?
(A) SegFault:
Exception thrown! Callstack's backtrace: trace: WException::WException(std::string const&) -> --------------------------/ow/build/lib/libopenwalnut.so.1(_ZN10WExceptionC1ERKSs+0x1c1) [0x7fd9fc20cc11] trace: WSegmentationFault::WSegmentationFault(std::string const&) -> -------------------------/ow/build/lib/libopenwalnut.so.1(_ZN18WSegmentationFaultC1ERKSs+0x1d) [0x7fd9fc33e2bd] trace: SignalTranslator::SingletonTranslator::SignalHandler(int) -> -------------------------/ow/build/lib/libopenwalnut.so.1(_ZN16SignalTranslatorI18WSegmentationFaultE19SingletonTranslator13SignalHandlerEi+0x82) [0x7fd9fc33e4d2] trace: () -> /lib/x86_64-linux-gnu/libc.so.6(+0x35180) [0x7fd9f8032180] trace: __dynamic_cast() -> /usr/lib/x86_64-linux-gnu/libstdc++.so.6(__dynamic_cast+0x43) [0x7fd9fa770003] trace: WModuleInputData::connectable(boost::shared_ptr) -> --------------------------/ow/build/bin/../lib/openwalnut/transferFunction1D/libtransferFunction1D.so.1.4.0(_ZN16WModuleInputDataI14WDataSetSingleE11connectableEN5boost10shared_ptrI16WModuleConnectorEE+0xc3) [0x7fd9d98f2893] trace: std::vector<boost::shared_ptr, std::allocator<boost::shared_ptr > > WApplyCombiner::createCombinerList(boost::shared_ptr, boost::shared_ptr) -> ----------------------------/build/lib/libopenwalnut.so.1(ZN14WApplyCombiner18createCombinerListIS_EESt6vectorIN5boost10shared_ptrI23WModuleOneToOneCombinerEESaIS5_EENS3_I7WModuleEES9+0x38a) [0x7fd9fc4e56fa] trace: WModuleFactory::getCompatiblePrototypes(boost::shared_ptr) -> -------------------------/ow/build/lib/libopenwalnut.so.1(_ZN14WModuleFactory23getCompatiblePrototypesEN5boost10shared_ptrI7WModuleEE+0x7db) [0x7fd9fc52e43b] trace: WQtControlPanel::createCompatibleButtons(boost::shared_ptr) -> bin/openwalnut-qt(_ZN15WQtControlPanel23createCompatibleButtonsEN5boost10shared_ptrI7WModuleEE+0x106) [0x6eb9b6] trace: WQtControlPanel::setActiveModule(boost::shared_ptr, bool) -> bin/openwalnut-qt(_ZN15WQtControlPanel15setActiveModuleEN5boost10shared_ptrI7WModuleEEb+0x16d1) [0x6e8be1] trace: WQtControlPanel::event(QEvent*) -> bin/openwalnut-qt(_ZN15WQtControlPanel5eventEP6QEvent+0x10a8) [0x6e4578] trace: QApplicationPrivate::notify_helper(QObject*, QEvent*) -> /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0x8c) [0x7fd9f913cadc] trace: QApplication::notify(QObject*, QEvent*) -> /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x3a0) [0x7fd9f9141fb0] trace: QCoreApplication::notifyInternal(QObject*, QEvent*) -> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0xdb) [0x7fd9f884f3ab] trace: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) -> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x1eb) [0x7fd9f885141b] trace: () -> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(+0x2ebf33) [0x7fd9f88a7f33] trace: g_main_context_dispatch() -> /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x2a7) [0x7fd9f13c1fe7] trace: () -> /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4a240) [0x7fd9f13c2240] trace: g_main_context_iteration() -> /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7fd9f13c22ec] trace: QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) -> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x57) [0x7fd9f88a8347] trace: QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) -> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0x112) [0x7fd9f884cb62] trace: QCoreApplication::exec() -> /usr/lib/x86_64-linux-gnu/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x9c) [0x7fd9f88547ac] trace: WQtGui::run() -> bin/openwalnut-qt(_ZN6WQtGui3runEv+0x1830) [0x73d660] trace: main() -> bin/openwalnut-qt(main+0x17ff) [0x6228af] trace: __libc_start_main() -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fd9f801eb45] trace: ??? -> bin/openwalnut-qt() [0x61b273]
terminate called after throwing an instance of 'WSegmentationFault' what(): Segmentation Fault. Aborted
(B) error:
openwalnut-qt: ../nptl/pthread_mutex_lock.c:350: __pthread_mutex_lock_full: Assertion `(-(e)) != 3 || !robust' failed. Aborted
(from redmine: created on 2015-10-13)