[Ode4j-users] multithreading crashes
Brought to you by:
tzaeschke
From: M@ <mat...@gm...> - 2013-05-16 13:17:26
|
Spinning this out so as to not threadjack. While starting my code on one particular machine (my advisor's) I get either: java.util.ConcurrentModificationException [java] java.util.ArrayList$Itr.checkForComodification(ArrayList.java:819) [java] java.util.ArrayList$Itr.next(ArrayList.java:791) [java] org.ode4j.ode.internal.DxSimpleSpace.cleanGeoms(DxSimpleSpace.java:63) [java] org.ode4j.ode.internal.DxSimpleSpace.collide(DxSimpleSpace.java:82) [java] com.robotsim.model.World.checkForCollisions(World.jacom.mds.simulator.MdsSimComponent or: ODE INTERNAL ERROR 1: assertion failed ODE INTERNAL ERROR 1: assertion failed java.lang.RuntimeException: #1: assertion failed -> org.ode4j.ode.internal.ErrorHdl.dDebug(ErrorHdl.java:186) org.ode4j.ode.internal.ErrorHandler.dDebug(ErrorHandler.java:89) org.ode4j.ode.internal.Common.dIASSERT(Common.java:123) org.ode4j.ode.internal.DxGeom.collideAABBs(DxGeom.java:1699) org.ode4j.ode.internal.DxSimpleSpace.collide(DxSimpleSpace.java:93) com.robotsim.model.World.checkForCollisions(World.java:197) com.robotsim.model.World.checkForCollisions(World.java:187) com.robotsim.model.LinearActuator.update(LinearActuator.java:60) com.robotsim.model.Robot.tick(Robot.java:115) com.robotsim.model.World.tick(World.java:128) com.robotsim.model.World.tick(World.java:119) com.robotsim.model.World$1.run(World.java:88) java.util.TimerThread.mainLoop(Timer.java:555) java.util.TimerThread.run(Timer.java:505) (chosen seemingly randomly). I managed to get it to stop on other machines by pausing the main loop (that calls collisionSpace.collide) whenever I need to add something to the collision space, but it's not clear why that didn't fix the problem on the one machine. It's also not clear exactly what sorts of invariants I need to maintain to keep ODE happy, I can certainly maintain them, I just need to know what they are. --M@ |