I was working on transfer request filtering and something that worked previously started causing OTP to stop from an error. I suspect PR https://github.com/opentripplanner/OpenTripPlanner/pull/6179 might have broken something, because this still worked recently.
Edit: I forgot to build between checking out dev-2.x and I now edited in the proper error with the correct branch built
Expected behavior
OTP should start when the BICYCLE mode is included in transferCacheRequests.
Observed behavior
An error causes dev-2.x OTP to stop when trying to pre-calculate transfer requests for the BICYCLE mode. When I remove the BICYCLE mode transfer requests from the config OTP starts.
Error:
10:56:45.588 INFO [main] (RaptorRequestTransferCache.java:44) Initializing cache with request: StreetRelevantOptions{transferMode: WALK, walk: WalkPreferences{speed: 1.67, reluctance: 1.8, boardCost: $120, stairsReluctance: 1.65, stairsTimeFactor: 2.0}, street: StreetPreferences{routingTimeout: 9s, elevator: ElevatorPreferences{boardTime: 1m}, accessEgress: AccessEgressPreferences{maxDuration: DurationForStreetMode{default:1h, BIKE:3h, CAR:3h, CAR_TO_PARK:2h}}, maxDirectDuration: DurationForStreetMode{default:4d4h, WALK:1h30m}}}
10:56:45.589 INFO [main] (ConstructApplication.java:242) Creating initial raptor transfer cache progress: 3 of 6 (50%)
10:56:45.611 ERROR [main] (OTPMain.java:61) An uncaught error occurred inside OTP: Expected only a single state returned from edge StreetEdge(path, {osm:node:2574652127 lat,lng=60.236859200000005,24.853444000000003} -> {osm:node:3712542205 lat,lng=60.2368834,24.853942800000002}, length=28.422, carSpeed=11.2, permission=PEDESTRIAN_AND_BICYCLE) but received 2
java.lang.IllegalStateException: Expected only a single state returned from edge StreetEdge(path, {osm:node:2574652127 lat,lng=60.236859200000005,24.853444000000003} -> {osm:node:3712542205 lat,lng=60.2368834,24.853942800000002}, length=28.422, carSpeed=11.2, permission=PEDESTRIAN_AND_BICYCLE) but received 2
at org.opentripplanner.street.search.state.EdgeTraverser.traverseEdges(EdgeTraverser.java:23)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.Transfer.asRaptorTransfer(Transfer.java:90)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.RaptorTransferIndex.lambda$create$2(RaptorTransferIndex.java:44)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:722)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.RaptorTransferIndex.create(RaptorTransferIndex.java:45)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.request.RaptorRequestTransferCache.put(RaptorRequestTransferCache.java:39)
at org.opentripplanner.routing.algorithm.raptoradapter.transit.TransitLayer.initTransferCacheForRequest(TransitLayer.java:153)
at org.opentripplanner.standalone.configure.ConstructApplication.lambda$initializeTransferCache$1(ConstructApplication.java:239)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at org.opentripplanner.standalone.configure.ConstructApplication.initializeTransferCache(ConstructApplication.java:238)
at org.opentripplanner.standalone.configure.ConstructApplication.setupTransitRoutingServer(ConstructApplication.java:172)
at org.opentripplanner.standalone.configure.ConstructApplication.createApplication(ConstructApplication.java:151)
at org.opentripplanner.standalone.configure.ConstructApplication.createGrizzlyServer(ConstructApplication.java:114)
at org.opentripplanner.standalone.OTPMain.startOtpWebServer(OTPMain.java:206)
at org.opentripplanner.standalone.OTPMain.startOTPServer(OTPMain.java:173)
at org.opentripplanner.standalone.OTPMain.main(OTPMain.java:56)
10:56:45.613 INFO [server-shutdown-info] (OtpStartupInfo.java:43) OTP SHUTTING DOWN (version: 2.7.0-SNAPSHOT, ser.ver.id: 168, commit: 53a2132fe4d6e50778d8fe46d27b6978eb189a73, branch: dev-2.x)
Version of OTP used (exact commit hash or JAR name)
commit 53a2132fe4d6e50778d8fe46d27b6978eb189a73
Data sets in use (links to GTFS and OSM PBF files)
I was working on transfer request filtering and something that worked previously started causing OTP to stop from an error. I suspect PR https://github.com/opentripplanner/OpenTripPlanner/pull/6179 might have broken something, because this still worked recently.
Edit: I forgot to build between checking out dev-2.x and I now edited in the proper error with the correct branch built
Expected behavior
OTP should start when the
BICYCLE
mode is included intransferCacheRequests
.Observed behavior
An error causes dev-2.x OTP to stop when trying to pre-calculate transfer requests for the
BICYCLE
mode. When I remove theBICYCLE
mode transfer requests from the config OTP starts.Error:
Version of OTP used (exact commit hash or JAR name)
commit 53a2132fe4d6e50778d8fe46d27b6978eb189a73
Data sets in use (links to GTFS and OSM PBF files)
HSL data for most of Finland.
Command line used to start OTP
graph build
OTP start
Router config and graph build config JSON
build-config.json
router-config.json
Steps to reproduce the problem
BICYCLE
mode intransferCacheRequests
.