Docker java.util.concurrent.ExecutionException

I made three new custom FlagEncoder and test them with small pbf and now I’am preparing to launch the graph generation on a production machine.

But each time the generation of the first profile is done, the container crashes due to an ExecutionException!

I already changed all the “threads” values to 1 but I continue to have the crash.

europe-latest.osm.pbf => 22.5 GB

I commented ‘Delete all profiles but car’ in the Dockerfile because it don’t let me create multiple profiles

docker-compose.yml

version: '2.4'
services:
  ors-app:
    container_name: ors-app
    ports:
      - 8080:8080
      - 9001:9001
    build:
      context: ../
      args:
        APP_CONFIG: ./openrouteservice/src/main/resources/app.config.sample
        OSM_FILE: ./openrouteservice/src/main/files/europe-latest.osm.pbf
    volumes:
      - ./graphs:/ors-core/data/graphs
      - ./elevation_cache:/ors-core/data/elevation_cache
      - ./logs/ors:/var/log/ors
      - ./logs/tomcat:/usr/local/tomcat/logs
      - ./conf:/ors-conf
      #- ./your_osm.pbf:/ors-core/data/osm_file.pbf
    environment:
      - BUILD_GRAPHS=False  # Forces the container to rebuild the graphs, e.g. when PBF is changed
      - "JAVA_OPTS=-Djava.awt.headless=true -server -XX:TargetSurvivorRatio=75 -XX:SurvivorRatio=64 -XX:MaxTenuringThreshold=3 -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:ParallelGCThreads=4 -Xms45g -Xmx45g"
      - "CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.rmi.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost"

Dockerfile

FROM openjdk:11-jdk

ENV MAVEN_OPTS="-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
ENV MAVEN_CLI_OPTS="–batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"

ARG APP_CONFIG=./openrouteservice/src/main/resources/app.config.sample
ARG OSM_FILE=./openrouteservice/src/main/files/europe-latest.osm.pbf

WORKDIR /ors-core

COPY openrouteservice /ors-core/openrouteservice
COPY $OSM_FILE /ors-core/data/osm_file.pbf
COPY $APP_CONFIG /ors-core/openrouteservice/src/main/resources/app.config.sample

#Install tomcat
RUN wget -q https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz -O /tmp/tomcat.tar.gz &&
cd /tmp &&
tar xvfz tomcat.tar.gz &&
mkdir /usr/local/tomcat /ors-conf &&
cp -R /tmp/apache-tomcat-8.5.39/* /usr/local/tomcat/ &&
# Install dependencies and locales
apt-get update -qq && apt-get install -qq -y locales nano maven moreutils jq &&
locale-gen en_US.UTF-8 &&
# Rename to app.config
cp /ors-core/openrouteservice/src/main/resources/app.config.sample /ors-core/openrouteservice/src/main/resources/app.config &&
# Replace paths in app.config to match docker setup
jq ‘.ors.services.routing.sources[0] = “data/osm_file.pbf”’ /ors-core/openrouteservice/src/main/resources/app.config |sponge /ors-core/openrouteservice/src/main/resources/app.config &&
jq ‘.ors.services.routing.profiles.default_params.elevation_cache_path = “data/elevation_cache”’ /ors-core/openrouteservice/src/main/resources/app.config |sponge /ors-core/openrouteservice/src/main/resources/app.config &&
jq ‘.ors.services.routing.profiles.default_params.graphs_root_path = “data/graphs”’ /ors-core/openrouteservice/src/main/resources/app.config |sponge /ors-core/openrouteservice/src/main/resources/app.config &&
# init_threads = 1, > 1 been reported some issues
jq ‘.ors.services.routing.init_threads = 1’ /ors-core/openrouteservice/src/main/resources/app.config |sponge /ors-core/openrouteservice/src/main/resources/app.config
# Delete all profiles but car
#jq ‘del(.ors.services.routing.profiles.active[1,2,95,3,4,5,6,7,8])’ /ors-core/openrouteservice/src/main/resources/app.config |sponge /ors-core/openrouteservice/src/main/resources/app.config

COPY ./docker-entrypoint.sh /docker-entrypoint.sh

#Start the container
EXPOSE 8080
ENTRYPOINT ["/bin/bash", “/docker-entrypoint.sh”]

app.config

{
   "ors":{
      "info":{
         "base_url":"https://openrouteservice.org/",
         "support_mail":"support@openrouteservice.org",
         "author_tag":"openrouteservice",
         "content_licence":"LGPL 3.0"
      },
      "services":{
         "routing":{
            "enabled":true,
            "mode":"normal",
            "routing_description":"This is a routing file from openrouteservice",
            "routing_name":"openrouteservice routing",
            "sources":[
               "openrouteservice/src/main/files/europe-latest.osm.pbf"
            ],
            "init_threads":1,
            "attribution":"openrouteservice.org, OpenStreetMap contributors",
            "elevation_preprocessed":false,
            "profiles":{
               "active":[
                  "akpla",
                  "akplb",
                  "akplc"
               ],
               "default_params":{
                  "encoder_flags_size":8,
                  "graphs_root_path":"graphs",
                  "elevation_provider":"multi",
                  "elevation_cache_path":"cgiar_provider",
                  "elevation_cache_clear":false,
                  "instructions":true,
                  "maximum_distance":100000,
                  "maximum_distance_dynamic_weights":100000,
                  "maximum_distance_avoid_areas":100000,
                  "maximum_waypoints":50,
                  "maximum_snapping_radius":400,
                  "maximum_avoid_polygon_area":200000000,
                  "maximum_avoid_polygon_extent":20000,
                  "maximum_distance_alternative_routes":100000,
                  "maximum_alternative_routes":3,
                  "maximum_distance_round_trip_routes":100000,
                  "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-akpla":{
                  "profiles":"driving-akpla",
                  "parameters":{
                     "encoder_flags_size":8,
                     "encoder_options":"turn_costs=true|block_fords=false|use_acceleration=false",
                     "maximum_distance":100000,
                     "elevation":false,
                     "preparation":{
                        "min_network_size":200,
                        "min_one_way_network_size":200,
                        "methods":{
                           "ch":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended"
                           },
                           "lm":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended,shortest",
                              "landmarks":16
                           },
                           "core":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended,shortest",
                              "landmarks":64,
                              "lmsets":"highways;allow_all"
                           }
                        }
                     },
                     "execution":{
                        "methods":{
                           "ch":{
                              "disabling_allowed":true
                           },
                           "lm":{
                              "disabling_allowed":true,
                              "active_landmarks":6
                           },
                           "core":{
                              "disabling_allowed":true,
                              "active_landmarks":6
                           }
                        }
                     },
                     "ext_storages":{
                        "WayCategory":{

                        },
                        "HeavyVehicle":{
                           "restrictions":true
                        },
                        "WaySurfaceType":{

                        }
                     }
                  }
               },
               "profile-akplb":{
                  "profiles":"driving-akplb",
                  "parameters":{
                     "encoder_flags_size":8,
                     "encoder_options":"turn_costs=true|block_fords=false|use_acceleration=false",
                     "maximum_distance":100000,
                     "elevation":false,
                     "preparation":{
                        "min_network_size":200,
                        "min_one_way_network_size":200,
                        "methods":{
                           "ch":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended"
                           },
                           "lm":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended,shortest",
                              "landmarks":16
                           },
                           "core":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended,shortest",
                              "landmarks":64,
                              "lmsets":"highways;allow_all"
                           }
                        }
                     },
                     "execution":{
                        "methods":{
                           "ch":{
                              "disabling_allowed":true
                           },
                           "lm":{
                              "disabling_allowed":true,
                              "active_landmarks":6
                           },
                           "core":{
                              "disabling_allowed":true,
                              "active_landmarks":6
                           }
                        }
                     },
                     "ext_storages":{
                        "WayCategory":{

                        },
                        "HeavyVehicle":{
                           "restrictions":true
                        },
                        "WaySurfaceType":{

                        }
                     }
                  }
               },
               "profile-akplc":{
                  "profiles":"driving-akplc",
                  "parameters":{
                     "encoder_flags_size":8,
                     "encoder_options":"turn_costs=true|block_fords=false|use_acceleration=false",
                     "maximum_distance":100000,
                     "elevation":false,
                     "preparation":{
                        "min_network_size":200,
                        "min_one_way_network_size":200,
                        "methods":{
                           "ch":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended"
                           },
                           "lm":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended,shortest",
                              "landmarks":16
                           },
                           "core":{
                              "enabled":true,
                              "threads":1,
                              "weightings":"recommended,shortest",
                              "landmarks":64,
                              "lmsets":"highways;allow_all"
                           }
                        }
                     },
                     "execution":{
                        "methods":{
                           "ch":{
                              "disabling_allowed":true
                           },
                           "lm":{
                              "disabling_allowed":true,
                              "active_landmarks":6
                           },
                           "core":{
                              "disabling_allowed":true,
                              "active_landmarks":6
                           }
                        }
                     },
                     "ext_storages":{
                        "WayCategory":{

                        },
                        "HeavyVehicle":{
                           "restrictions":true
                        },
                        "WaySurfaceType":{

                        }
                     }
                  }
               }
            }
         }
      },
      "logging":{
         "enabled":true,
         "level_file":"DEBUG_LOGGING.json",
         "location":"/var/log/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"
         }
      ]
   }
}

docker logs ors-app

14-Dec-2020 08:13:23.444 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 10425 ms
14 Dec 08:14:24 INFO [routing.RoutingProfile] - [1] FlagEncoders: 1, bits used [UNKNOWN]/64.
14 Dec 08:14:24 INFO [routing.RoutingProfile] - [1] Capacity: [UNKNOWN]. (edges - 83087201, nodes - 65342755)
14 Dec 08:14:24 INFO [routing.RoutingProfile] - [1] Total time: 61.726s.
14 Dec 08:14:24 INFO [routing.RoutingProfile] - [1] Finished at: 2020-12-14 08:14:24.
14 Dec 08:14:24 INFO [routing.RoutingProfile] -
14 Dec 08:14:24 INFO [routing.RoutingProfile] - [2] Profiles: 'driving-akplb', location: 'data/graphs/akplb'.

14 Dec 12:04:40 ERROR [routing.RoutingProfileManager] - java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.carrotsearch.hppc.BufferAllocationException: Not enough memory to allocate buffers for rehashing: 67,108,864 -> 134,217,728

14 Dec 12:04:40 INFO [routing.RoutingProfile] - [3] Profiles: ‘driving-akplc’, location: ‘data/graphs/akplc’.

14 Dec 12:04:40 ERROR [routing.RoutingProfileManager] - Failed to initialize RoutingProfileManager instance.

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.carrotsearch.hppc.BufferAllocationException: Not enough memory to allocate buffers for rehashing: 67,108,864 -> 134,217,728

        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
        at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
        at org.heigit.ors.routing.RoutingProfileManager.initialize(RoutingProfileManager.java:164) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfileManager.getInstance(RoutingProfileManager.java:59) ~[classes/:6.3.1]
        at org.heigit.ors.servlet.listeners.ORSInitContextListener.lambda$contextInitialized$0(ORSInitContextListener.java:40) ~[classes/:6.3.1]
        at java.lang.Thread.run(Thread.java:834) [?:?]

Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.carrotsearch.hppc.BufferAllocationException: Not enough memory to allocate buffers for rehashing: 67,108,864 -> 134,217,728

        at com.graphhopper.routing.lm.LMAlgoFactoryDecorator.loadOrDoWork(LMAlgoFactoryDecorator.java:303) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.GraphHopper.loadOrPrepareLM(GraphHopper.java:1388) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.GraphHopper.postProcessing(GraphHopper.java:950) ~[graphhopper-core-v0.13.8.jar:?]
        at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.postProcessing(ORSGraphHopper.java:608) ~[classes/:6.3.1]
        at com.graphhopper.GraphHopper.process(GraphHopper.java:703) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.GraphHopper.importOrLoad(GraphHopper.java:680) ~[graphhopper-core-v0.13.8.jar:?]
        at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.importOrLoad(ORSGraphHopper.java:159) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfile.initGraphHopper(RoutingProfile.java:191) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfile.<init>(RoutingProfile.java:135) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:35) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:21) ~[classes/:6.3.1]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        ... 1 more
Caused by: java.util.concurrent.ExecutionException: com.carrotsearch.hppc.BufferAllocationException: Not enough memory to allocate buffers for rehashing: 67,108,864 -> 134,217,728
        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
        at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
        at com.graphhopper.routing.lm.LMAlgoFactoryDecorator.loadOrDoWork(LMAlgoFactoryDecorator.java:299) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.GraphHopper.loadOrPrepareLM(GraphHopper.java:1388) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.GraphHopper.postProcessing(GraphHopper.java:950) ~[graphhopper-core-v0.13.8.jar:?]
        at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.postProcessing(ORSGraphHopper.java:608) ~[classes/:6.3.1]
        at com.graphhopper.GraphHopper.process(GraphHopper.java:703) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.GraphHopper.importOrLoad(GraphHopper.java:680) ~[graphhopper-core-v0.13.8.jar:?]
        at org.heigit.ors.routing.graphhopper.extensions.ORSGraphHopper.importOrLoad(ORSGraphHopper.java:159) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfile.initGraphHopper(RoutingProfile.java:191) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfile.<init>(RoutingProfile.java:135) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:35) ~[classes/:6.3.1]
        at org.heigit.ors.routing.RoutingProfileLoader.call(RoutingProfileLoader.java:21) ~[classes/:6.3.1]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        ... 1 more
Caused by: com.carrotsearch.hppc.BufferAllocationException: Not enough memory to allocate buffers for rehashing: 67,108,864 -> 134,217,728
        at com.carrotsearch.hppc.IntObjectHashMap.allocateBuffers(IntObjectHashMap.java:1111) ~[hppc-0.8.1.jar:?]
        at com.carrotsearch.hppc.IntObjectHashMap.allocateThenInsertThenRehash(IntObjectHashMap.java:1136) ~[hppc-0.8.1.jar:?]
        at com.carrotsearch.hppc.IntObjectHashMap.put(IntObjectHashMap.java:180) ~[hppc-0.8.1.jar:?]
        at com.graphhopper.routing.AbstractBidirAlgo.fillEdges(AbstractBidirAlgo.java:315) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.AbstractBidirAlgo.fillEdgesFrom(AbstractBidirAlgo.java:274) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.AbstractBidirAlgo.runAlgo(AbstractBidirAlgo.java:238) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LandmarkStorage$LandmarkExplorer.runAlgo(LandmarkStorage.java:814) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LandmarkStorage.createLandmarksForSubnetwork(LandmarkStorage.java:371) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LandmarkStorage.createLandmarks(LandmarkStorage.java:288) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.PrepareLandmarks.doSpecificWork(PrepareLandmarks.java:130) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.util.AbstractAlgoPreparation.doWork(AbstractAlgoPreparation.java:30) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LMAlgoFactoryDecorator$1.run(LMAlgoFactoryDecorator.java:289) ~[graphhopper-core-v0.13.8.jar:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        ... 1 more
Caused by: java.lang.OutOfMemoryError: Java heap space
        at com.carrotsearch.hppc.IntObjectHashMap.allocateBuffers(IntObjectHashMap.java:1102) ~[hppc-0.8.1.jar:?]
        at com.carrotsearch.hppc.IntObjectHashMap.allocateThenInsertThenRehash(IntObjectHashMap.java:1136) ~[hppc-0.8.1.jar:?]
        at com.carrotsearch.hppc.IntObjectHashMap.put(IntObjectHashMap.java:180) ~[hppc-0.8.1.jar:?]
        at com.graphhopper.routing.AbstractBidirAlgo.fillEdges(AbstractBidirAlgo.java:315) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.AbstractBidirAlgo.fillEdgesFrom(AbstractBidirAlgo.java:274) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.AbstractBidirAlgo.runAlgo(AbstractBidirAlgo.java:238) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LandmarkStorage$LandmarkExplorer.runAlgo(LandmarkStorage.java:814) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LandmarkStorage.createLandmarksForSubnetwork(LandmarkStorage.java:371) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LandmarkStorage.createLandmarks(LandmarkStorage.java:288) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.PrepareLandmarks.doSpecificWork(PrepareLandmarks.java:130) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.util.AbstractAlgoPreparation.doWork(AbstractAlgoPreparation.java:30) ~[graphhopper-core-v0.13.8.jar:?]
        at com.graphhopper.routing.lm.LMAlgoFactoryDecorator$1.run(LMAlgoFactoryDecorator.java:289) ~[graphhopper-core-v0.13.8.jar:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        ... 1 more
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - ====> Recycling garbage...
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - Before:  Total - 45 GB, Free - 3.00 GB, Max: 45 GB, Used - 42.00 GB
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - After:  Total - 45 GB, Free - 7.62 GB, Max: 45 GB, Used - 37.38 GB
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - ========================================================================
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - ====> Memory usage by profiles:
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - [1] 13.85 GB (37.1%)
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - Total: 13.85 GB (37.1%)
14 Dec 12:04:40 INFO [routing.RoutingProfileManager] - ========================================================================

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "ajp-nio-8009-AsyncTimeout"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "ajp-nio-8009-ClientPoller-0"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-nio-8080-ClientPoller-0"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "ajp-nio-8009-ClientPoller-1"

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-nio-8080-ClientPoller-1"
Exception in thread "http-nio-8080-AsyncTimeout" Exception in thread "PBF Reader" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AsyncFileHandlerWriter-110992469" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
14-Dec-2020 12:10:09.553 SEVERE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run Unexpected death of background thread [ContainerBackgroundProcessor[StandardEngine[Catalina]]]
 java.lang.OutOfMemoryError: Java heap space

Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: Java heap space