-RM-113-MR-WQtNetworkEditor::event(...) sometimes crashes
I get more or less random crashes in WQtnetworkEditor. The corresponding valgrind output is:
==5988== Thread 1: ==5988== Invalid read of size 8 ==5988== at 0x4DB5B1: WQtNetworkEditor::event(QEvent*) (in /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build/bin/openwalnut-qt4) ==5988== by 0x5BDA423: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4486) ==5988== by 0x5BDF290: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4365) ==5988== by 0x56A9AFB: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:787) ==5988== by 0x56AD51E: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==5988== by 0x56D4A72: postEventSourceDispatch(_GSource*, int ()(void), void*) (qcoreapplication.h:220) ==5988== by 0xC687A5C: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0xC688257: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0xC688428: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0x56D4ED5: QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (qeventdispatcher_glib.cpp:422) ==5988== by 0x5C8207D: QGuiEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (qguieventdispatcher_glib.cpp:204) ==5988== by 0x56A8CF1: QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (qeventloop.cpp:149) ==5988== Address 0x2bad7788 is 24 bytes inside a block of size 40 free'd ==5988== at 0x4C282E0: free (vg_replace_malloc.c:366) ==5988== by 0x4DC934: WQtNetworkEditor::event(QEvent*) (in /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build/bin/openwalnut-qt4) ==5988== by 0x5BDA423: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4486) ==5988== by 0x5BDF290: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4365) ==5988== by 0x56A9AFB: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:787) ==5988== by 0x56AD51E: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==5988== by 0x56D4A72: postEventSourceDispatch(_GSource*, int ()(void), void*) (qcoreapplication.h:220) ==5988== by 0xC687A5C: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0xC688257: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0xC688428: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0x56D4ED5: QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (qeventdispatcher_glib.cpp:422) ==5988== by 0x5C8207D: QGuiEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (qguieventdispatcher_glib.cpp:204) ==5988== ==5988== Invalid read of size 8 ==5988== at 0x4D4480: WQtNetworkInputPort::getConnector() (in /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build/bin/openwalnut-qt4) ==5988== by 0x4DB5C4: WQtNetworkEditor::event(QEvent*) (in /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build/bin/openwalnut-qt4) ==5988== by 0x5BDA423: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4486) ==5988== by 0x5BDF290: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4365) ==5988== by 0x56A9AFB: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:787) ==5988== by 0x56AD51E: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==5988== by 0x56D4A72: postEventSourceDispatch(_GSource*, int ()(void), void*) (qcoreapplication.h:220) ==5988== by 0xC687A5C: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0xC688257: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0xC688428: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.0) ==5988== by 0x56D4ED5: QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (qeventdispatcher_glib.cpp:422) ==5988== by 0x5C8207D: QGuiEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) (qguieventdispatcher_glib.cpp:204) ==5988== Address 0x1000033373367 is not stack'd, malloc'd or (recently) free'd ==5988== Exception thrown! Callstack's backtrace: trace: WException::WException(std::string const&) -> /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build/lib/libopenwalnut.so.1(_ZN10WExceptionC2ERKSs+0x11d) [0x51175dd] trace: WSegmentationFault::WSegmentationFault(std::string const&) -> /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build/lib/libopenwalnut.so.1(_ZN18WSegmentationFaultC2ERKSs+0xd) [0x511587d] trace: SignalTranslator::SingletonTranslator::SignalHandler(int) -> /local_home/l_hlawit/Uni/Leipzig/OpenWalnut/build/lib/libopenwalnut.so.1(_ZN16SignalTranslatorI18WSegmentationFaultE19SingletonTranslator13SignalHandlerEi+0xad) [0x51159bd] trace: () -> /lib/x86_64-linux-gnu/libc.so.6(+0x36420) [0xa5a9420] trace: WQtNetworkInputPort::getConnector() -> ./bin/openwalnut-qt4(_ZN19WQtNetworkInputPort12getConnectorEv+0) [0x4d4480] trace: WQtNetworkEditor::event(QEvent*) -> ./bin/openwalnut-qt4(_ZN16WQtNetworkEditor5eventEP6QEvent+0x735) [0x4db5c5] trace: QApplicationPrivate::notify_helper(QObject*, QEvent*) -> /usr/lib/x86_64-linux-gnu/libQtGui.so.4(_ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent+0xb4) [0x5bda424] trace: QApplication::notify(QObject*, QEvent*) -> /usr/lib/x86_64-linux-gnu/libQtGui.so.4(_ZN12QApplication6notifyEP7QObjectP6QEvent+0x121) [0x5bdf291] trace: QCoreApplication::notifyInternal(QObject*, QEvent*) -> /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN16QCoreApplication14notifyInternalEP7QObjectP6QEvent+0x8c) [0x56a9afc] trace: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) -> /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData+0x2af) [0x56ad51f] trace: () -> /usr/lib/x86_64-linux-gnu/libQtCore.so.4(+0x197a73) [0x56d4a73] trace: g_main_context_dispatch() -> /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x1dd) [0xc687a5d] trace: () -> /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x45258) [0xc688258] trace: g_main_context_iteration() -> /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x69) [0xc688429] trace: QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) -> /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x76) [0x56d4ed6] trace: () -> /usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x2a407e) [0x5c8207e] trace: QEventLoop::processEvents(QFlagsQEventLoop::ProcessEventsFlag) -> /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN10QEventLoop13processEventsE6QFlagsINS_17ProcessEventsFlagEE+0x32) [0x56a8cf2] trace: QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) -> /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xa7) [0x56a8ef7] trace: QCoreApplication::exec() -> /usr/lib/x86_64-linux-gnu/libQtCore.so.4(_ZN16QCoreApplication4execEv+0x89) [0x56ad789] trace: WQt4Gui::run() -> ./bin/openwalnut-qt4(_ZN7WQt4Gui3runEv+0x1931) [0x47cec1] trace: main() -> ./bin/openwalnut-qt4(main+0x6f7) [0x473167] trace: __libc_start_main() -> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0xa59430d] trace: ??? -> ./bin/openwalnut-qt4() [0x473a45]
Qt has caught an exception thrown from an event handler. Throwing exceptions from an event handler is not supported in Qt. You must reimplement QApplication::notify() and catch all exceptions there.
terminate called after throwing an instance of 'WSegmentationFault' what(): Segmentation Fault.
(from redmine: created on 2011-12-02, closed on 2012-04-03)