Thank you

Tomorrow I'll start new tests with the new development version to debug the
original issue

On Thu, Mar 4, 2021, 6:06 PM Jakob Erdmann <[email protected]> wrote:

> Thanks for the example. The problem was due to
> https://github.com/eclipse/sumo/issues/8320
>
> Am Do., 4. März 2021 um 20:16 Uhr schrieb Marcelo Andrade Rodrigues D
> Almeida <[email protected]>:
>
>> I could reproduce the trace file problem
>>
>> See attached files
>>
>>
>>
>>
>>
>> On Thu, Mar 4, 2021 at 3:29 PM Marcelo Andrade Rodrigues D Almeida <
>> [email protected]> wrote:
>>
>>> Just to clarify
>>>
>>> The attached file is one of the finished tests from the last batch
>>> (traceGetters False)
>>>
>>> But both (this one and the previously traceGetters True) were presenting
>>> zero simulation step entries in the trace files.
>>>
>>>
>>>
>>> On Thu, Mar 4, 2021 at 3:21 PM Marcelo Andrade Rodrigues D Almeida <
>>> [email protected]> wrote:
>>>
>>>> I'm redoing the tests with traceGetters set to False to reduce the
>>>> (huge) file size. Also, I had to restart the tests because someone or
>>>> something turned off the remote machine overnight.
>>>>
>>>>
>>>> What I could find so far:
>>>>
>>>> I could retrieve a trace file in the remote server (the huge one) and I
>>>> found something very odd.
>>>>
>>>> In my trivial test, I found a regular trace file
>>>>
>>>> "traci.start(['/home/marcelo/code/sumo/bin/sumo-gui', '-n',
>>>> '/home/marcelo/temp2/temp/temp/temp/regular-intersection__right_on_red.net.xml',
>>>> '-r', '/home/marcelo/temp2/temp/temp/temp/regular-intersection.rou.xml',
>>>> '--start', 'True'], port=None, label='default')
>>>> traci.trafficlight.setPhase('gneJ0', 0)
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.trafficlight.setPhase('gneJ0', 0)
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.simulationStep()
>>>> traci.trafficlight.setPhase('gneJ0', 0)
>>>> "
>>>>
>>>> In my actual experiment (with multi_processing set to False), all
>>>> 'traci.simulationStep()' commands are gone (see file attached for complete
>>>> trace):
>>>> "
>>>> traci.trafficlight.setRedYellowGreenState('231',
>>>> 'rrrrGGggrrrGGGgyyyyrrrrGGGGggrrrrrrrrrrrrGGg')
>>>> traci.trafficlight.setRedYellowGreenState('231',
>>>> 'rrrrGGggrrryyyyyyyyrrrrGGGGggrrrrrrrrrrrrGGg')
>>>> traci.trafficlight.setRedYellowGreenState('233', 'rryyyyrrrryy')
>>>> traci.trafficlight.setRedYellowGreenState('282', 'rrryyyrrryyy')
>>>> traci.trafficlight.setRedYellowGreenState('221',
>>>> 'yyyrrrryyyyyyyrrrrryyy')
>>>> traci.trafficlight.setRedYellowGreenState('220', 'GGGrrrrryyyrr')
>>>> traci.trafficlight.setRedYellowGreenState('209', 'ryrGGrr')
>>>> traci.trafficlight.setRedYellowGreenState('210', 'rrrGGGGGrrrrrrrryyyy')
>>>> traci.trafficlight.setRedYellowGreenState('273', 'yyyrrrryy')
>>>> traci.vehicle.subscribe('Prati_Capraia_100_70', [66, 64, 122, 86, 183,
>>>> 76, 72, 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Borgo_20_56', [66, 64, 122, 86, 183, 76, 72,
>>>> 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Malvasia_100_70', [66, 64, 122, 86, 183, 76,
>>>> 72, 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Pertini_20_159', [66, 64, 122, 86, 183, 76,
>>>> 72, 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Costa_700_126', [66, 64, 122, 86, 183, 76, 72,
>>>> 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Pepoli_10_199', [66, 64, 122, 86, 183, 76, 72,
>>>> 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Gandhi_40_219', [66, 64, 122, 86, 183, 76, 72,
>>>> 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Audinot_3_16', [66, 64, 122, 86, 183, 76, 72,
>>>> 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Pepoli_10_200', [66, 64, 122, 86, 183, 76, 72,
>>>> 68, 81, 71, 77, 67, 181])
>>>> traci.vehicle.subscribe('Silvani_7_145', [66, 64, 122, 86, 183, 76, 72,
>>>> 68, 81, 71, 77, 67, 181])
>>>> traci.trafficlight.setRedYellowGreenState('231',
>>>> 'rrrrGGggrrryyyyrrrrGGrrGGGGggrrrrrrrrrrrrGGg')
>>>> traci.trafficlight.setRedYellowGreenState('231',
>>>> 'rrrrGGggrrrrrrrrrrrGGrrGGGGggrrrrrrrrrrrrGGg')
>>>> traci.trafficlight.setRedYellowGreenState('282', 'GGgrrrGGgrrr')
>>>> traci.trafficlight.setRedYellowGreenState('220', 'GGGrrrrGrrrrr')
>>>> traci.trafficlight.setRedYellowGreenState('209', 'GrGGGrr')
>>>> traci.trafficlight.setRedYellowGreenState('210', 'rrrGGGGGrrrrrrGGrrrr')
>>>> traci.trafficlight.setRedYellowGreenState('273', 'rrrGGGGrr')
>>>> traci.trafficlight.setRedYellowGreenState('233', 'GGrrrrGGGgrr')
>>>> traci.trafficlight.setRedYellowGreenState('221',
>>>> 'rrrGGGGrrrrrrrGGGGGrrr')
>>>> "
>>>>
>>>> This was the reported crash from this execution:
>>>> #0  0x000055d660c7cf86 in MSVehicle::getBoundingBox() const ()
>>>> #1  0x000055d660cfa5b1 in MSLane::detectCollisions(long long,
>>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>>> std::allocator<char> > const&) ()
>>>> #2  0x000055d660cd8b54 in MSEdgeControl::detectCollisions(long long,
>>>> std::__cxx11::basic_string<char, std::char_traits<char>,
>>>> std::allocator<char> > const&) ()
>>>> #3  0x000055d660c34294 in MSNet::simulationStep() ()
>>>> #4  0x000055d660c344a6 in MSNet::simulate(long long, long long) ()
>>>> #5  0x000055d660c1c37d in main ()
>>>>
>>>>
>>>> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>>>
>>>> What I could find about the trace file generation problem
>>>>
>>>> The problem is that (without multi-processing) traci is discarding the
>>>> first run trace file info and keeping traces for the following runs.
>>>> When running with multi-processing, all traci simulations are handled
>>>> as first-run (i.e., new processes) and everything is thrown away.
>>>>
>>>> It doesn't matter if it is a regular or a debug build
>>>>
>>>> I'm don't know why the first run is discarded. I'll keep looking
>>>>
>>>>
>>>> Any new information, I post here
>>>>
>>>>
>>>> On Wed, Mar 3, 2021 at 10:08 AM Jakob Erdmann <[email protected]>
>>>> wrote:
>>>>
>>>>> 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
>>>>>
>>>>> Am Mi., 3. März 2021 um 13:55 Uhr schrieb Harald Schaefer <
>>>>> [email protected]>:
>>>>>
>>>>>> 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
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>> sumo-user mailing list
>>>>> [email protected]
>>>>> To unsubscribe from this list, visit
>>>>> https://www.eclipse.org/mailman/listinfo/sumo-user
>>>>>
>>>> _______________________________________________
>> sumo-user mailing list
>> [email protected]
>> To unsubscribe from this list, visit
>> https://www.eclipse.org/mailman/listinfo/sumo-user
>>
> _______________________________________________
> sumo-user mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/sumo-user
>
_______________________________________________
sumo-user mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to