Large number of objects using Dynamics3D causes SEGFAULT

Discussions regarding ARGoS bugs. Report bugs here.
mallwright
Posts: 35
Joined: Tue Apr 17, 2012 11:15 am

Large number of objects using Dynamics3D causes SEGFAULT

Postby mallwright » Mon Oct 01, 2012 1:34 pm

In a configuration with a large number of objects (250 in this case), it appears that after the number of collisions reaches a particular threshold and causes CDynamics3D / ODE to throw a segmentation fault. See attached image and XML for the scenario, and the GDB inspection of the ARGOS during the crash.

Code: Select all

allsey87@Amadeus:~/Workspace/ARGoS/argos2-simulator/user/allsey87$ gdb ./argos GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://bugs.launchpad.net/gdb-linaro/>... Reading symbols from /home/allsey87/Workspace/ARGoS/argos2-simulator/user/allsey87/argos...done. (gdb) set args -c xml/sb_testbench.xml (gdb) run Starting program: /home/allsey87/Workspace/ARGoS/argos2-simulator/user/allsey87/argos -c xml/sb_testbench.xml [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7fffe00ef700 (LWP 15022)] [New Thread 0x7fffdf8ee700 (LWP 15023)] [New Thread 0x7fffde483700 (LWP 15024)] [INFO] Not using threads [INFO] Using random seed = 301774 [INFO] Using simulation clock tick = 0.04 [INFO] Total experiment length in clock ticks = unlimited [INFO] Embodied entity space hash: 100000 buckets, cell size = <0.2,0.2,0.3>. [INFO] LED entity space hash: 100000 buckets, cell size = <0.2,0.2,0.3>. [INFO] Magnet entity space hash: 100000 buckets, cell size = <0.2,0.2,0.3>. [INFO] RAB equipped entity space hash: 100000 buckets, cell size = <1,1,1>. [WARNING] No loop functions specified in the <loop_functions> section of the configuration file. [WARNING] Using standard (empty) loop functions. [WARNING] No floor entity specified, the floor will be blank Program received signal SIGSEGV, Segmentation fault. 0x00007ffff4276cda in dSolveLCP(int, double*, double*, double*, double*, int, double*, double*, int*) () from /usr/lib/libode.so.1 (gdb) backtrace #0 0x00007ffff4276cda in dSolveLCP(int, double*, double*, double*, double*, int, double*, double*, int*) () from /usr/lib/libode.so.1 #1 0x00007ffff428ceaa in dInternalStepIsland_x2(dxWorld*, dxBody* const*, int, dxJoint* const*, int, double) () from /usr/lib/libode.so.1 #2 0x00007ffff4292078 in dxProcessIslands(dxWorld*, double, void (*)(dxWorld*, dxBody* const*, int, dxJoint* const*, int, double)) () from /usr/lib/libode.so.1 #3 0x00007ffff4543c5f in argos::CDynamics3DEngine::Update (this=0x697690) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/physics_engines/dynamics3d/dynamics3d_engine.cpp:173 #4 0x00007ffff5f780c6 in argos::CSpaceNoThreads::UpdatePhysics (this=0x721000) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/space/space_no_threads.cpp:50 #5 0x00007ffff5f4d7ec in argos::CSpace::Update (this=0x721000) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/space/space.cpp:290 #6 0x00007ffff7bc85ff in argos::CSimulator::UpdateSpace (this=0x6f2000) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/simulator.cpp:249 #7 0x00007ffff3bc54e7 in argos::CQTOpenGLWidget::StepSimulation (this=0x155a000) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/visualizations/qt-opengl/qtopengl_widget.cpp:308 #8 0x00007ffff3bc606a in argos::CQTOpenGLWidget::timerEvent (this=0x155a000, pc_event=0x7fffffffd3d0) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/visualizations/qt-opengl/qtopengl_widget.cpp:464 #9 0x00007ffff2866179 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #10 0x00007ffff2dbfb7b in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #11 0x00007ffff38a2208 in QGLWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtOpenGL.so.4 #12 0x00007ffff2d6f894 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #13 0x00007ffff2d74713 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #14 0x00007ffff284ce9c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #15 0x00007ffff287e1f2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #16 0x00007ffff287bc0d in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #17 0x00007ffff287bc31 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #18 0x00007fffef65cd53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #19 0x00007fffef65d0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007fffef65d164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007ffff287c3bf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #22 0x00007ffff2e17d5e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #23 0x00007ffff284bc82 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #24 0x00007ffff284bed7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #25 0x00007ffff2850f67 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #26 0x00007ffff3bc89bc in argos::CQTOpenGLRender::Execute (this=0x72f900) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/visualizations/qt-opengl/qtopengl_render.cpp:96 #27 0x00007ffff7bc857f in argos::CSimulator::Execute (this=0x6f2000) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/simulator.cpp:235 #28 0x00000000004034ed in main (n_argc=3, ppch_argv=0x7fffffffe028) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/main.cpp:70 (gdb) frame 3 #3 0x00007ffff4543c5f in argos::CDynamics3DEngine::Update (this=0x697690) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/physics_engines/dynamics3d/dynamics3d_engine.cpp:173 173 dWorldStep(m_tWorldID, m_fSimulationClockTick); (gdb) frame 4 #4 0x00007ffff5f780c6 in argos::CSpaceNoThreads::UpdatePhysics (this=0x721000) at /home/allsey87/Workspace/ARGoS/argos2-simulator/simulator/space/space_no_threads.cpp:50 50 (*m_ptPhysicsEngines)[i]->Update(); (gdb) quit
Attachments
sb_testbench.xml
XML Experiment file that caused the glitch. Note that some features used in this file are not in the main distribution of ARGoS at the time of this post.
(12.02 KiB) Downloaded 747 times
manysmartblocks.png
Screenshot of simulation at time of crash, t=28 steps
manysmartblocks.png (222.89 KiB) Viewed 16396 times

mallwright
Posts: 35
Joined: Tue Apr 17, 2012 11:15 am

Re: Large number of objects using Dynamics3D causes SEGFAULT

Postby mallwright » Mon Oct 01, 2012 1:46 pm

I have had variable results by decreasing the number of blocks, this sometimes shows the system coming to rest, and sometimes results in a SEGFAULT, which would be influenced by the value of the random seed. The version of ODE in use is 2:0.11.1-4build1 (precise), that is built for Ubuntu precise 64 bit.

pincy
Site Admin
Posts: 632
Joined: Thu Mar 08, 2012 8:04 pm
Location: Boston, MA
Contact:

Re: Large number of objects using Dynamics3D causes SEGFAULT

Postby pincy » Mon Oct 01, 2012 2:01 pm

Thanks, I'll look into that.

Just a little question: the boxes you use for the walls are positioned such that they do not overlap, or not?
I made ARGoS.

mallwright
Posts: 35
Joined: Tue Apr 17, 2012 11:15 am

Re: Large number of objects using Dynamics3D causes SEGFAULT

Postby mallwright » Tue Oct 02, 2012 10:58 am

Hi Pincy, yes the boxes used for the walls do not overlap.


Return to “Bugs”