webots icon indicating copy to clipboard operation
webots copied to clipboard

Crash when deleting robot

Open omichel opened this issue 4 years ago • 3 comments

It seems that if a supervisor process is monitoring contact points of robots with getContactPoints() and deletes a robot with remove(), webots crashes with the following stack:

Thread 1 received signal SIGSEGV, Segmentation fault.
0x00007ff7c62ec90c in WbOdeGeomData::solid (this=0xfeeefeeefeeefeee)
    at ode/WbOdeGeomData.hpp:39
39        WbSolid *solid() const { return mSolid; }
(gdb) where
#0  0x00007ff7c62ec90c in WbOdeGeomData::solid (this=0xfeeefeeefeeefeee)
    at ode/WbOdeGeomData.hpp:39
#1  0x00007ff7c607d366 in WbSolid::extractContactPoints (this=0x1e0637d8bd0)
    at nodes/WbSolid.cpp:2411
#2  0x00007ff7c607d17c in WbSolid::computedContactPoints (this=0x1e0637d8bd0,
    includeDescendants=false) at nodes/WbSolid.cpp:2385
#3  0x00007ff7c609a469 in WbSupervisorUtilities::writeAnswer (this=
    0x1e051a40e60, stream=...) at nodes/utils/WbSupervisorUtilities.cpp:1563
#4  0x00007ff7c6041857 in WbRobot::writeAnswer (this=0x1e05160db20,
    stream=...) at nodes/WbRobot.cpp:1221
#5  0x00007ff7c60405af in WbRobot::dispatchAnswer (this=0x1e05160db20,
    stream=..., includeDevices=true) at nodes/WbRobot.cpp:1047
#6  0x00007ff7c5f47c0a in WbController::writeAnswer (this=0x1e04d9e0cb0,
    immediateAnswer=true) at control/WbController.cpp:941
#7  0x00007ff7c5f48337 in WbController::readRequest (this=0x1e04d9e0cb0)
    at control/WbController.cpp:1092
#8  0x00007ff7c6184c47 in WbController::qt_static_metacall (_o=0x1e04d9e0cb0,
    _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x58fb1fbc20)
    at build/debug/WbController.moc.cpp:147
#9  0x00007ffb52eaf203 in void doActivate<false>(QObject*, int, void**) ()
   from D:\msys64\mingw64\bin\Qt5Core.dll
#10 0x00007ffb52eaf203 in void doActivate<false>(QObject*, int, void**) ()
   from D:\msys64\mingw64\bin\Qt5Core.dll
#11 0x00007ffb52d74f62 in QWindowsPipeReader::emitPendingReadyRead() ()
   from D:\msys64\mingw64\bin\Qt5Core.dll
#12 0x00007ffb52ded782 in QMetaCallEvent::placeMetaCall(QObject*) ()
   from D:\msys64\mingw64\bin\Qt5Core.dll
#13 0x00007ffb52df272e in QObject::event(QEvent*) ()
   from D:\msys64\mingw64\bin\Qt5Core.dll
#14 0x00007ffb537d7fd3 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from D:\msys64\mingw64\bin\Qt5Widgets.dll
#15 0x00007ffb52dc4aca in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    () from D:\msys64\mingw64\bin\Qt5Core.dll
#16 0x00007ffb52dcb119 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from D:\msys64\mingw64\bin\Qt5Core.dll
#17 0x00007ffb5168195e in QWindowsGuiEventDispatcher::sendPostedEvents() ()
   from D:\msys64\mingw64\share\qt5\plugins\platforms\qwindows.dll
#18 0x00007ffb52e2128f in QEventDispatcherWin32::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from D:\msys64\mingw64\bin\Qt5Core.dll
#19 0x00007ffb51681945 in QWindowsGuiEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from D:\msys64\mingw64\share\qt5\plugins\platforms\qwindows.dll
#20 0x00007ffb52dc3473 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from D:\msys64\mingw64\bin\Qt5Core.dll
#21 0x00007ffb52dcc127 in QCoreApplication::exec() ()
   from D:\msys64\mingw64\bin\Qt5Core.dll
#22 0x00007ff7c5f825f2 in WbGuiApplication::exec (this=0x58fb1ff560)
    at gui/WbGuiApplication.cpp:341
#23 0x00007ff7c6107ff3 in main (argc=1, argv=0x1e03a704240)
    at gui/main.cpp:207

omichel avatar May 18 '21 13:05 omichel