TERMINAL OUTPUT
Connected Robot: red_Booster-T1_0
Sending initial message to red_Booster-T1_0
Connected Robot: blue_Booster-T1_0
Sending initial message to blue_Booster-T1_0
Robot ready: red_Booster-T1_0
Robot ready: blue_Booster-T1_0
All robots are ready!
Starting simulation!
========================================
[CRASH] Signal received: SIGSEGV (Segmentation fault)
========================================
Backtrace:
[0] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/circus(+0x420cc) [0x5577906e10cc]
[1] /lib/x86_64-linux-gnu/[libc.so](https://libc.so/).6(+0x42520) [0x7e4510642520]
[2] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/../lib/[libmujoco.so](https://libmujoco.so/).3.3.3(mj_freeStack
[3] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/../lib/[libmujoco.so](https://libmujoco.so/).3.3.3(mj_collision
[4] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/../lib/[libmujoco.so](https://libmujoco.so/).3.3.3(mj_fwdPosition
[5] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/../lib/[libmujoco.so](https://libmujoco.so/).3.3.3(mj_forwardSkip
[6] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/../lib/[libmujoco.so](https://libmujoco.so/).3.3.3(mj_step
[7] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/circus(+0xad3eb) [0x55779074c3eb]
[8] /home/valeriospagnoli/RoboCup/circus/.pixi/envs/default/bin/../lib/[libQt6Core.so](https://libqt6core.so/).6(+0x278813) [0x7e4510e78813]
[9] /lib/x86_64-linux-gnu/[libc.so](https://libc.so/).6(+0x94ac3) [0x7e4510694ac3]
[10] /lib/x86_64-linux-gnu/[libc.so](https://libc.so/).6(+0x1268c0) [0x7e45107268c0]
Cleaning up resources...
Cleanup complete. Re-raising signal.
CLOUDE IDEA
Found the problem. You have a race condition - the simulation thread and the rendering thread both access mjData concurrently without synchronization:
SimulationThread calls mj_step(model_, data_) at line 22
SimulationViewport::paintGL() calls mjv_updateScene(model, data, ...) at lines 48 and 68
Mouse events call mjv_applyPerturbPose(model, data, ...) at lines 147, 159, 162, 163
MuJoCo's mjData is not thread-safe. When mj_step runs collision detection while rendering reads from data, you get corruption → segfault in mj_freeStack.
TERMINAL OUTPUT
CLOUDE IDEA
Found the problem. You have a race condition - the simulation thread and the rendering thread both access mjData concurrently without synchronization:
SimulationThread calls mj_step(model_, data_) at line 22
SimulationViewport::paintGL() calls mjv_updateScene(model, data, ...) at lines 48 and 68
Mouse events call mjv_applyPerturbPose(model, data, ...) at lines 147, 159, 162, 163
MuJoCo's mjData is not thread-safe. When mj_step runs collision detection while rendering reads from data, you get corruption → segfault in mj_freeStack.