Hi Harald,
the loop with the AnyVehicleIterator should never yield nullptrs. Hence the real bug is someplace else.
The 4 worker threads in the stacktrace are due to --device.rerouting.threads', '4', which doesn't really help to explain this (parallel routing typically doesn't cause premature vehicle deletion).
Had the threads come from option --threads, that would have been a likely cause of the issue since we have far fewer tests for this.
neverthless @marcello: Please try running without option --device.rerouting.threads and see if you can still trigger the crash.
Either way, I will probably need a traci-traceFile to fix this.
regards,
Jakob
Hi Marcelo, hi Jakob,
thanks for the backtraces (looks good)
The problem in this scenario is that MSVehicle::getBoundingBox
(this=0x0) is called with a null-Object from this loop:
for (AnyVehicleIterator veh = anyVehiclesBegin(); veh !=
anyVehiclesEnd(); ++veh) {
MSVehicle* collider =
const_cast<MSVehicle*>(*veh);
//std::cout << " collider " <<
collider->getID() << "\n";
PositionVector colliderBoundary =
collider->getBoundingBox();
Thread 1 (Thread 0x7fb4974cd780 (LWP 12544)):
#0 0x0000561970425dcc in MSVehicle::getBoundingBox (this=0x0) at
/app/sumo-git/src/microsim/MSVehicle.cpp:5925
#1 0x00005619704c23f5 in MSLane::detectCollisions
(this=0x561972d88020, timestep=947000, stage="move") at
/app/sumo-git/src/microsim/MSLane.cpp:1358
Regards, Harald