Open behrisch opened 7 years ago
one work-around is to create a double connection where the stop lane ends so that both lanes allow continuation. http://sumo.dlr.de/wiki/Networks/Building_Networks_from_own_XML-descriptions#Multiple_connections_from_the_same_edge_to_the_same_target_lane http://sumo.dlr.de/wiki/NETEDIT#Connect
A possible solution would be to prevent vehicles from driving past the start of the busStop while on the wrong lane as long as the bus lane has a vehicle on it. (the no-vehicle condition is necessary to prevent deadlock in case the vehicle must enter a bus bay via lane-changing for some reason)
@namdre I had a short dicussion recently that a topic like this may also result from rerouting short before the junction. Do you have any ideas how to fix this (except for enabling swapping ;-))
Besides extra connections, failure-to-change lanes could trigger rerouting (#8055). Also, MSVehicle::getRerouteOrigin could take the lane change state into account fairly easily.
The reference to 8782 was a typo
one vehicle needs to change lanes to reach the stop lane and another vehicle wants to change lanes in the opposite direction to continue its route.
Possible reason 1: The deadlock is caused by myLeadingBlockerLength which is set by another vehicle (LC2013.cpp:1951. Reservation should take into account myLeftSpace of the calling vehicle)
Possible reason 2: Both vehicles attempt target the same stop but start out on different lanes. Vehicle A that is already on the correct lane does not yet reserve space for changing back because it's strategic foresight is still focused on stopping. Vehicle B on the neighboring lane is not aware that the stop will soon be occupied by A because MSStoppingPlace::enter is only called once the stop is reached.
This was already present in 0.25.0
Migrated from http://sumo.dlr.de/ticket/3079