Config file needed for building North-America

I am unable to build the graphs for hgv for North-America (US, Canada, Mexico). I have a 32 Gb machine which is more than 2x the size of the pbf file as recommended in many posts I have read.

Would anyone be willing to share their config file? Or offer any advice?

1 Like

Hey,

we estimate this per profile, so you might want to turn off any profiles other than hgv.
Other than that, is there any useful error message you could share?

Best regards

Thanks for responding. In retrospect, my question is somewhat vague. I’m trying to run in a Docker container on a Linux host that has 32 Gb. I’ve also tried this on a Windows host, also in Docker, with 32 Gb with similar outcome.

I’ve set the Java heap space to be 75% of the 32 Gb. A recommendation I received from some people more savvy than me about Java.

The only active profile I have is “hgv”.There are many settings in the config file and while I can start reading source code to determine the relationship of these settings, I preferred to go after the low hanging fruit. Ask an expert.

The log file generated from my previous run (that was running when I submitted my initial question) follows.

The config file has been altered several times in my effort to overcome the heap space issues I was previously having, And thus, there may very well be some really dumb settings that reflect my expertise with ORS.

While I can’t build North-America, I can build Canada, Mexico, and the US as standalone. I can even build US-Mexico, and US-Canada.

Anything that will help me reach my stated goal would be much appreciated. The error, “Search exceeds the limit of visited nodes.” obviously means that I’ve exceeded a setting, but I do not understand the context and thus what to increase or decrease.

Note: The message length exceeded the maximum allotted, so I edited the log file and the config file to fit. Hopefully I did not leave out any important information.

$ docker-compose up
[+] Running 1/0
 ✔ Container ors-app  Created                                                                                                                                                                         0.0s
Attaching to ors-app
ors-app  | Running container as user root with id 0
ors-app  | ORS Path: /home/ors
ors-app  | Catalina Path: /home/ors/tomcat
ors-app  | ### openrouteservice configuration ###
ors-app  | Deploy ors with config from /home/ors/ors-conf/ors-config.json
ors-app  | NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
ors-app  | NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
ors-app  | 07-Feb-2024 04:28:46.508 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
ors-app  | 07-Feb-2024 04:28:49.506 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
ors-app  | 04:28:49.991 [main] INFO  org.heigit.ors.config.AppConfig - Default path of 'ors-config.json' used for configuration
ors-app  | 04:28:49.995 [main] INFO  org.heigit.ors.config.AppConfig - Loading configuration from /home/ors/tomcat/webapps/ors/WEB-INF/classes/ors-config.json
ors-app  |
ors-app  |   .   ____          _            __ _ _
ors-app  |  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
ors-app  | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
ors-app  |  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
ors-app  |   '  |____| .__|_| |_|_| |_\__, | / / / /
ors-app  |  =========|_|==============|___/=/_/_/_/
ors-app  |  :: Spring Boot ::               (v2.7.12)
ors-app  |
ors-app  | 07 Feb 04:28:50 INFO [ors.Application] - Starting Application v7.1.1 using Java 17.0.7 on de145ee804e9 with PID 1 (/home/ors/tomcat/webapps/ors/WEB-INF/classes started by root in /home/ors)
ors-app  | 07 Feb 04:28:50 DEBUG [ors.Application] - Running with Spring Boot v2.7.12, Spring v5.3.27
ors-app  | 07 Feb 04:28:50 INFO [ors.Application] - No active profile set, falling back to 1 default profile: "default"
ors-app  | 07 Feb 04:28:53 INFO [ors.Application] - Started Application in 3.437 seconds (JVM running for 7.177)
ors-app  | 07 Feb 04:28:53 INFO [logging.LoggingUtility] - Logging configuration loaded from DEBUG_LOGGING.json, logging to file /home/ors/ors-core/logs/ors/ors-logs.log
ors-app  | 07 Feb 04:28:53 INFO [routing.RoutingProfileManager] -  Total - 1024 MB, Free - 612.07 MB, Max: 32 GB, Used - 411.93 MB
ors-app  | 07 Feb 04:28:53 INFO [routing.RoutingProfileManager] -
ors-app  | 07 Feb 04:28:53 INFO [routing.RoutingProfileManager] - ====> Initializing profiles from '/home/ors/ors-core/data/osm_file.pbf' (1 threads) ...
ors-app  | 07 Feb 04:28:53 INFO [routing.RoutingProfileManager] - 1 tasks submitted.
ors-app  | 07 Feb 04:28:53 INFO [routing.RoutingProfile] - [1] Profiles: 'driving-hgv', location: '/home/ors/ors-core/data/graphs/hgv'.
ors-app  | 07-Feb-2024 04:28:53.489 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
ors-app  | 07 Feb 04:28:53 INFO [core.CoreLMPreparationHandler] - Loaded landmark splitting collection from
ors-app  | 07 Feb 04:28:53 INFO [extensions.ORSGraphHopper] - version v4.8.1|2023-09-05T08:03:54Z (7,20,5,4,5,7)
ors-app  | 07 Feb 04:28:53 INFO [extensions.ORSGraphHopper] - graph CH|heavyvehicle|RAM_STORE|2D|turn_cost|,,,,, details:edges:0(0MB), nodes:0(0MB), name:(0MB), geo:0(0MB), bounds:1.7976931348623157E308,-1.7976931348623157E308,1.7976931348623157E308,-1.7976931348623157E308, shortcuts:0 (0MB), nodesCH:-1 (0MB), shortcuts:0 (0MB), nodesCH:-1 (0MB), shortcuts:0 (0MB), nodesCH:-1 (0MB)
ors-app  | 07 Feb 04:28:53 INFO [extensions.ORSGraphHopper] - No custom areas are used, custom_areas.directory not given
ors-app  | 07 Feb 04:28:53 INFO [extensions.ORSGraphHopper] - start creating graph from /home/ors/ors-core/data/osm_file.pbf
ors-app  | 07 Feb 04:28:53 INFO [extensions.ORSGraphHopper] - using CH|heavyvehicle|RAM_STORE|2D|turn_cost|,,,,, memory:totalMB:1024, usedMB:568
ors-app  | 07 Feb 04:30:06 INFO [extensions.ORSGraphHopper] - call cleanUp for '/home/ors/ors-core/data/graphs/hgv'
ors-app  | 07 Feb 04:30:06 INFO [extensions.ORSGraphHopper] - graph CH|heavyvehicle|RAM_STORE|2D|turn_cost|7,20,5,4,5, details:edges:9 294 213(320MB), nodes:6 988 337(107MB), name:(27MB), geo:42 925 395(164MB), bounds:-118.3268954,-86.7136282,14.5326848,32.7332624, shortcuts:0 (1MB), nodesCH:-1 (1MB), shortcuts:0 (1MB), nodesCH:-1 (1MB), shortcuts:0 (1MB), nodesCH:-1 (1MB)
ors-app  | 07 Feb 04:30:06 INFO [extensions.ORSGraphHopper] - will create PrepareRoutingSubnetworks with:
ors-app  |      NodeCountBefore: '6988337'
ors-app  |      getAllEdges().getMaxId(): '9294213'
ors-app  |      List<FlagEncoder>: '[heavyvehicle]'
ors-app  |      minNetworkSize: '200'
ors-app  |      minOneWayNetworkSize: '200'
ors-app  | 07 Feb 04:30:40 INFO [extensions.ORSGraphHopper] - nodes: 6 988 337, edges: 9 294 213
ors-app  | 07 Feb 04:32:41 INFO [core.CorePreparationHandler] - Creating CH preparations, totalMB:7984, usedMB:3424
ors-app  | 07 Feb 04:32:41 INFO [core.CorePreparationHandler] - 1/2 calling CH prepare.doWork for profile 'heavyvehicle_recommended_with_turn_costs' EDGE_BASED ... (totalMB:7984, usedMB:3424)
ors-app  | 07 Feb 04:32:41 INFO [core.CorePreparationHandler] - 2/2 calling CH prepare.doWork for profile 'heavyvehicle_shortest_with_turn_costs' EDGE_BASED ... (totalMB:7984, usedMB:3424)
ors-app  | 07 Feb 04:32:41 INFO [core.PrepareCore] - Creating Core graph, totalMB:7984, usedMB:3430
ors-app  | 07 Feb 04:32:41 INFO [core.PrepareCore] - Building Core graph, totalMB:7984, usedMB:3686
ors-app  | 07 Feb 04:32:48 INFO [core.PrepareCore] - Finished building Core graph, took: 7.302978s, totalMB:7984, usedMB:4693
ors-app  | 07 Feb 04:32:55 INFO [core.PrepareCore] - Building initial queue of nodes to be contracted: 6988337 nodes, totalMB:10048, usedMB:4273
ors-app  | 07 Feb 04:32:59 INFO [core.PrepareCore] - Finished building queue, took: 3.7779334s, totalMB:10048, usedMB:4169
ors-app  | 07 Feb 04:32:59 INFO [core.PrepareCore] - edge, nodes:  6 927 490, shortcuts:          0, updates:  0, checked-nodes:          0, t(total):  17.57,  t(period):   3.78, t(lazy):   0.00, t(neighbor):   0.00, t(contr):   0.00, t(other) :  13.79, dijkstra-ratio:   3.73%, meanDegree: 1.33, dijkstras: 32 805 621, mem:       53MB, totalMB:10048, usedMB:4169
ors-app  | 07 Feb 04:32:59 INFO [core.PrepareCore] - edge, nodes:  6 584 459, shortcuts:          5, updates:  0, checked-nodes:    346 375, t(total):  17.93,  t(period):   3.78, t(lazy):   0.10, t(neighbor):   0.00, t(contr):   0.19, t(other) :  13.86, dijkstra-ratio:   3.67%, meanDegree: 1.00, dijkstras: 32 806 354, mem:       53MB, totalMB:10048, usedMB:4289
...
ors-app  | 07 Feb 04:37:44 INFO [core.PrepareCore] - edge, nodes:    199 359, shortcuts:  8 862 521, updates:  0, checked-nodes:  8 313 000, t(total): 143.46,  t(period):   3.64, t(lazy):  85.50, t(neighbor):   0.00, t(contr):  38.34, t(other) :  15.98, dijkstra-ratio:  69.47%, meanDegree: 5.61, dijkstras: 128 311 838, mem:       53MB, totalMB:17184, usedMB:7015
ors-app  | 07 Feb 04:38:06 INFO [core.PrepareCore] - edge, nodes:          0, shortcuts: 10 966 802, updates:  0, checked-nodes:  8 523 823, t(total): 165.92,  t(period):   3.64, t(lazy): 102.55, t(neighbor):   0.00, t(contr):  43.20, t(other) :  16.54, dijkstra-ratio:  71.86%, meanDegree: 7.37, dijkstras: 142 727 471, mem:       53MB, totalMB:17184, usedMB:7463
ors-app  | 07 Feb 04:38:06 INFO [core.PrepareCore] - new shortcuts: 10 966 802, initSize:6 927 490, limited_access|shortest|heavyvehicle, periodic:0, lazy:100, neighbor:0, t(total): 165.92,  t(period):   3.64, t(lazy): 102.55, t(neighbor):   0.00, t(contr):  43.20, t(other) :  16.54, dijkstra-ratio:  71.86%, lazy-overhead: 23%, totalMB:17184, usedMB:7463
ors-app  | 07 Feb 04:38:06 INFO [core.PrepareCore] - shortcuts that exceed maximum weight: 0
ors-app  | 07 Feb 04:38:06 INFO [core.PrepareCore] - took: 165s, graph now - num edges: 9 294 213, num nodes: 6 988 337, num shortcuts: 10 966 802
ors-app  | 07 Feb 04:38:06 INFO [core.CorePreparationHandler] - Finished CH preparation, totalMB:17184, usedMB:7463
ors-app  | 07 Feb 04:38:06 INFO [core.CoreLMPreparationHandler] - Creating LM preparations, totalMB:17184, usedMB:7467
ors-app  | 07 Feb 04:38:06 INFO [core.CoreLandmarkStorage] - Created core node ID map for heavyvehicle_recommended_with_turn_costs_highways of size 130121
ors-app  | 07 Feb 04:38:06 INFO [core.CoreLandmarkStorage] - Created core node ID map for heavyvehicle_recommended_with_turn_costs_allow_all of size 130121
ors-app  | 07 Feb 04:38:06 INFO [core.CoreLandmarkStorage] - Created core node ID map for heavyvehicle_shortest_with_turn_costs_highways of size 130121
ors-app  | 07 Feb 04:38:06 INFO [core.CoreLandmarkStorage] - Created core node ID map for heavyvehicle_shortest_with_turn_costs_allow_all of size 130121
ors-app  | 07 Feb 04:38:06 INFO [core.CoreLMPreparationHandler] - 1/4 calling LM prepare.doWork for limited_access|recommended|heavyvehicle ... (totalMB:17184, usedMB:7519)
ors-app  | 07 Feb 04:38:09 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_highways] Made 0 edges inaccessible. Calculated country cut in 2.7667222s, totalMB:17184, usedMB:7703
ors-app  | 07 Feb 04:38:10 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_highways] Calculated 30596 subnetworks via tarjan in 0.38475344s, totalMB:17184, usedMB:6994
ors-app  | 07 Feb 04:38:12 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_highways] init landmarks for subnetworks with node count greater than 10000 with factor:3.1002275736257636, maxWeight:203176.51426513804 from quick estimation
ors-app  | 07 Feb 04:38:12 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_highways] start node: 0 (23.2270697,-106.4287644) subnetwork 97882, subnetwork size: 97883, totalMB:17184, usedMB:7014 area:[]
ors-app  | 07 Feb 04:39:04 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_highways] Finished landmark creation. Subnetwork node count sum 130121 vs. nodes 130121
ors-app  | 07 Feb 04:39:04 INFO [core.CoreLMPreparationHandler] - LM heavyvehicle_recommended_with_turn_costs_highways finished totalMB:17184, usedMB:14632
ors-app  | 07 Feb 04:39:04 INFO [core.CoreLMPreparationHandler] - 2/4 calling LM prepare.doWork for limited_access|recommended|heavyvehicle ... (totalMB:17184, usedMB:14632)
ors-app  | 07 Feb 04:39:06 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_allow_all] Made 0 edges inaccessible. Calculated country cut in 2.6195588s, totalMB:17184, usedMB:12258
ors-app  | 07 Feb 04:39:06 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_allow_all] Calculated 1947 subnetworks via tarjan in 0.1327652s, totalMB:17184, usedMB:12362
ors-app  | 07 Feb 04:39:08 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_allow_all] init landmarks for subnetworks with node count greater than 10000 with factor:2.140564284357608, maxWeight:140284.0209396602 from quick estimation
ors-app  | 07 Feb 04:39:08 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_allow_all] start node: 0 (23.2270697,-106.4287644) subnetwork 128139, subnetwork size: 128140, totalMB:17184, usedMB:9181 area:[]
ors-app  | 07 Feb 04:40:04 INFO [core.CoreLandmarkStorage] - [heavyvehicle_recommended_with_turn_costs_allow_all] Finished landmark creation. Subnetwork node count sum 130121 vs. nodes 130121
ors-app  | 07 Feb 04:40:04 INFO [core.CoreLMPreparationHandler] - LM heavyvehicle_recommended_with_turn_costs_allow_all finished totalMB:17184, usedMB:12629
ors-app  | 07 Feb 04:40:04 INFO [core.CoreLMPreparationHandler] - 3/4 calling LM prepare.doWork for limited_access|shortest|heavyvehicle ... (totalMB:17184, usedMB:12629)
ors-app  | 07 Feb 04:40:07 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_highways] Made 0 edges inaccessible. Calculated country cut in 2.633594s, totalMB:17184, usedMB:10432
ors-app  | 07 Feb 04:40:07 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_highways] Calculated 30590 subnetworks via tarjan in 0.31919792s, totalMB:17184, usedMB:10552
ors-app  | 07 Feb 04:40:11 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_highways] init landmarks for subnetworks with node count greater than 10000 with factor:72.23240861279302, maxWeight:4733823.130848004 from quick estimation
ors-app  | 07 Feb 04:40:11 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_highways] start node: 0 (23.2270697,-106.4287644) subnetwork 97964, subnetwork size: 97965, totalMB:17184, usedMB:12716 area:[]
ors-app  | 07 Feb 04:41:44 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_highways] Finished landmark creation. Subnetwork node count sum 130121 vs. nodes 130121
ors-app  | 07 Feb 04:41:44 INFO [core.CoreLMPreparationHandler] - LM heavyvehicle_shortest_with_turn_costs_highways finished totalMB:17184, usedMB:12785
ors-app  | 07 Feb 04:41:44 INFO [core.CoreLMPreparationHandler] - 4/4 calling LM prepare.doWork for limited_access|shortest|heavyvehicle ... (totalMB:17184, usedMB:12793)
ors-app  | 07 Feb 04:41:47 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_allow_all] Made 0 edges inaccessible. Calculated country cut in 2.6438076s, totalMB:17184, usedMB:10687
ors-app  | 07 Feb 04:41:47 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_allow_all] Calculated 1940 subnetworks via tarjan in 0.13259338s, totalMB:17184, usedMB:10791
ors-app  | 07 Feb 04:41:50 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_allow_all] init landmarks for subnetworks with node count greater than 10000 with factor:67.02034221606444, maxWeight:4392245.147471999 from quick estimation
ors-app  | 07 Feb 04:41:50 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_allow_all] start node: 0 (23.2270697,-106.4287644) subnetwork 128154, subnetwork size: 128155, totalMB:17184, usedMB:13082 area:[]
ors-app  | 07 Feb 04:43:27 INFO [core.CoreLandmarkStorage] - [heavyvehicle_shortest_with_turn_costs_allow_all] Finished landmark creation. Subnetwork node count sum 130121 vs. nodes 130121
ors-app  | 07 Feb 04:43:27 INFO [core.CoreLMPreparationHandler] - LM heavyvehicle_shortest_with_turn_costs_allow_all finished totalMB:17184, usedMB:9005
ors-app  | 07 Feb 04:43:27 INFO [core.CoreLMPreparationHandler] - Finished LM preparation, totalMB:17184, usedMB:9010
ors-app  | 07 Feb 04:43:27 DEBUG [partitioning.PreparePartition] - Submitting task for cell 1
ors-app  | 07 Feb 04:43:49 INFO [partitioning.InertialFlow] - Number of nodes: 6988337
ors-app  | 07 Feb 04:43:49 INFO [partitioning.InertialFlow] - Number of edges: 9294213
ors-app  | 07 Feb 04:53:22 ERROR [routing.RoutingProfileManager] - java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.heigit.ors.exceptions.MaxVisitedNodesExceededException: Search exceeds the limit of visited nodes.
ors-app  | 07 Feb 04:53:22 ERROR [routing.RoutingProfileManager] - Failed to initialize RoutingProfileManager instance.
ors-app  |      at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
ors-app  |      at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
ors-app  |      at org.heigit.ors.routing.RoutingProfileManager.initialize(RoutingProfileManager.java:181) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfileManager.getInstance(RoutingProfileManager.java:72) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.servlet.listeners.ORSInitContextListener.lambda$contextInitialized$0(ORSInitContextListener.java:40) ~[classes/:7.1.1]
ors-app  |      at java.lang.Thread.run(Thread.java:833) [?:?]
ors-app  | Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.heigit.ors.exceptions.MaxVisitedNodesExceededException: Search exceeds the limit of visited nodes.
ors-app  |      at org.heigit.ors.fastisochrones.Eccentricity.calcBorderNodeDistances(Eccentricity.java:156) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.calculateCellProperties(ORSGraphHopper.java:639) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.postProcessing(ORSGraphHopper.java:427) ~[classes/:7.1.1]
ors-app  |      at com.graphhopper.GraphHopper.process(GraphHopper.java:706) ~[graphhopper-core-v4.8.1.jar:?]
ors-app  |      at com.graphhopper.GraphHopper.importOrLoad(GraphHopper.java:667) ~[graphhopper-core-v4.8.1.jar:?]
ors-app  |      at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.importOrLoad(ORSGraphHopper.java:166) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfile.initGraphHopper(RoutingProfile.java:193) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfile.<init>(RoutingProfile.java:140) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:39) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:25) ~[classes/:7.1.1]
ors-app  |      at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
ors-app  |      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
ors-app  |      at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
ors-app  |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
ors-app  |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
ors-app  |      ... 1 more
ors-app  | Caused by: java.util.concurrent.ExecutionException: org.heigit.ors.exceptions.MaxVisitedNodesExceededException: Search exceeds the limit of visited nodes.
ors-app  |      at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
ors-app  |      at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
ors-app  |      at org.heigit.ors.fastisochrones.Eccentricity.calcBorderNodeDistances(Eccentricity.java:152) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.calculateCellProperties(ORSGraphHopper.java:639) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.postProcessing(ORSGraphHopper.java:427) ~[classes/:7.1.1]
ors-app  |      at com.graphhopper.GraphHopper.process(GraphHopper.java:706) ~[graphhopper-core-v4.8.1.jar:?]
ors-app  |      at com.graphhopper.GraphHopper.importOrLoad(GraphHopper.java:667) ~[graphhopper-core-v4.8.1.jar:?]
ors-app  |      at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.importOrLoad(ORSGraphHopper.java:166) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfile.initGraphHopper(RoutingProfile.java:193) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfile.<init>(RoutingProfile.java:140) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:39) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:25) ~[classes/:7.1.1]
ors-app  |      at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
ors-app  |      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
ors-app  |      at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
ors-app  |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
ors-app  |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
ors-app  |      ... 1 more
ors-app  | Caused by: org.heigit.ors.exceptions.MaxVisitedNodesExceededException: Search exceeds the limit of visited nodes.
ors-app  |      at org.heigit.ors.routing.algorithms.AbstractOneToManyRoutingAlgorithm.isMaxVisitedNodesExceeded(AbstractOneToManyRoutingAlgorithm.java:84) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.algorithms.DijkstraOneToManyAlgorithm.runAlgo(DijkstraOneToManyAlgorithm.java:109) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.routing.algorithms.DijkstraOneToManyAlgorithm.calcPaths(DijkstraOneToManyAlgorithm.java:90) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.fastisochrones.Eccentricity.calculateBorderNodeDistances(Eccentricity.java:175) ~[classes/:7.1.1]
ors-app  |      at org.heigit.ors.fastisochrones.Eccentricity.lambda$calcBorderNodeDistances$1(Eccentricity.java:145) ~[classes/:7.1.1]
ors-app  |      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
ors-app  |      at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
ors-app  |      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
ors-app  |      at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
ors-app  |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
ors-app  |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
ors-app  |      ... 1 more
ors-app  | 07 Feb 04:53:22 INFO [routing.RoutingProfileManager] - ====> Recycling garbage...
ors-app  | 07 Feb 04:53:22 INFO [routing.RoutingProfileManager] - Before:  Total - 12.94 GB, Free - 3.41 GB, Max: 32 GB, Used - 9.53 GB
ors-app  | 07 Feb 04:53:22 INFO [routing.RoutingProfileManager] - After:  Total - 7.77 GB, Free - 5.57 GB, Max: 32 GB, Used - 2.19 GB
ors-app  | 07 Feb 04:53:22 INFO [routing.RoutingProfileManager] - ========================================================================
ors-app  | 07 Feb 04:53:22 INFO [routing.RoutingProfileManager] - ====> Memory usage by profiles:
ors-app  | 07 Feb 04:53:22 INFO [routing.RoutingProfileManager] - Total: 0 B (0.0%)
ors-app  | 07 Feb 04:53:22 INFO [routing.RoutingProfileManager] - ========================================================================

The config file I am using is:

$ more ors-config.json
{
  "ors": {
    "info": {
      "base_url": "https://openrouteservice.org/",
      "swagger_documentation_url": "https://api.openrouteservice.org/",
      "support_mail": "support@openrouteservice.org",
      "author_tag": "openrouteservice",
      "content_licence": "LGPL 3.0"
    },
    "api_settings": {
      "cors": {
        "allowed": {
          "origins": [
            "*"
          ],
          "headers": [
            "Content-Type",
            "X-Requested-With",
            "accept",
            "Origin",
            "Access-Control-Request-Method",
            "Access-Control-Request-Headers",
            "Authorization"
          ]
        },
        "exposed": {
          "headers": [
            "Access-Control-Allow-Origin",
            "Access-Control-Allow-Credentials"
          ]
        },
        "preflight_max_age": 600
      }
    },
    "services": {
      "matrix": {
        "enabled": false
              },
      "isochrones": {
        "enabled": false,
        ],
        
          "profiles": {
            "default_params": {
              "enabled": false,
              "threads": 12,
              "weightings": "recommended",
              "maxcellnodes": 500000000
            },
            "hgv": {
              "enabled": true,
              "threads": 12,
              "weightings": "recommended, shortest",
              "maxcellnodes": 500000000
            }
          }
        },
        "maximum_intervals": 10,
        "maximum_locations": 2,
        "allow_compute_area": true
      },
      "routing": {
        "enabled": true,
        "mode": "normal",
        "routing_description": "This is a routing file from openrouteservice",
        "routing_name": "openrouteservice routing",
        "sources": [
          "/home/ors/ors-core/data/osm_file.pbf"
        ],
        "init_threads": 1,
        "attribution": "openrouteservice.org, OpenStreetMap contributors",
        "elevation_preprocessed": false,
        "profiles": {
          "active": [
            "hgv"
          ],
          "default_params": {
            "encoder_flags_size": 8,
            "graphs_root_path": "/home/ors/ors-core/data/graphs",
            "elevation_provider": "multi",
            "elevation_cache_path": "/home/ors/ors-core/data/elevation_cache",
            "elevation_cache_clear": false,
            "instructions": true,
            "maximum_distance": 1000000,
            "maximum_distance_dynamic_weights": 2000000,
            "maximum_distance_avoid_areas": 100000,
            "maximum_waypoints": 5000,
            "maximum_snapping_radius": 400,
            "maximum_avoid_polygon_area": 100000000,
            "maximum_avoid_polygon_extent": 20000,
            "maximum_distance_alternative_routes": 1000000,
            "maximum_alternative_routes": 3,
            "maximum_distance_round_trip_routes": 2000000,
            "maximum_speed_lower_bound": 80,
            "preparation": {
              "min_network_size": 200,
              "min_one_way_network_size": 200,
              "methods": {
                "lm": {
                  "enabled": true,
                  "threads": 1,
                  "weightings": "recommended,shortest",
                  "landmarks": 16
                }
              }
            },
            "execution": {
              "methods": {
                "lm": {
                  "disabling_allowed": true,
                  "active_landmarks": 8
                }
              }
            }
          },
          "profile-hgv": {
            "profiles": "driving-hgv",
            "parameters": {
              "encoder_flags_size": 8,
              "encoder_options": "turn_costs=true|block_fords=false|use_acceleration=true",
              "maximum_distance": 2000000,
              "elevation": false,
              "preparation": {
                "min_network_size": 200,
                "min_one_way_network_size": 200,
                "methods": {
                  "ch": {
                    "enabled": true,
                    "threads": 1,
                    "weightings": "recommended"
                  },
                  "core": {
                    "enabled": true,
                    "threads": 1,
                    "weightings": "recommended,shortest",
                    "landmarks": 64,
                    "lmsets": "highways;allow_all"
                  }
                }
              },
              "execution": {
                "methods": {
                  "ch": {
                    "disabling_allowed": true
                  },
                  "core": {
                    "disabling_allowed": true,
                    "active_landmarks": 6
                  }
                }
              },
              "ext_storages": {
                "WayCategory": {},
                "HeavyVehicle": {
                  "restrictions": true
                },
                "WaySurfaceType": {}
              }
            }
          },
          
          }
        }
      }
    },
    "logging": {
      "enabled": true,
      "level_file": "DEBUG_LOGGING.json",
      "location": "/home/ors/ors-core/logs/ors",
      "stdout": true
    },
    "system_message": [
      {
        "active": false,
        "text": "This message would be sent with every routing bike fastest request",
        "condition": {
          "request_service": "routing",
          "request_profile": "cycling-regular,cycling-mountain,cycling-road,cycling-electric",
          "request_preference": "fastest"
        }
      },
      {
        "active": false,
        "text": "This message would be sent with every request for geojson response",
        "condition": {
          "api_format": "geojson"
        }
      },
      {
        "active": false,
        "text": "This message would be sent with every request on API v1 from January 2020 until June 2050",
        "condition": {
          "api_version": 1,
          "time_after": "2020-01-01T00:00:00Z",
          "time_before": "2050-06-01T00:00:00Z"
        }
      },
      {
        "active": false,
        "text": "This message would be sent with every request"
      }
    ]
  }
}

The issue seems to be caused by fast isochrones. In section "services" of your config, you could try disabling them by adding this subsection (along with “matrix”, “isochrones”, etc.):

"fastisochrones": {
        "enabled": false
}

Don’t forget to recompile to include the config in the war-file.

Best regards

Hi sascha

Thanks for your reply / help. It seemed from the json config file that fastisochrones was a subset of isochrones. I have since done as recommend and will build later this evening.

But you did mention that I have to rebuild for the config change to take effect. I assumed all along that the config file was read at startup and that changes therein would propagate. I had not even considered rebuilding. Perhaps the incremental changes that I was trying never took effect because I omitted the recompilation.

1 Like

Yes, this is an unfortunate side effect of the war-deployment. The config file has to be packaged into the war to take effect. This will change with the upcoming version 8.0, which also supports jar deployment, with a proper config file that just needs a restart.