opentripplanner / OpenTripPlanner

An open source multi-modal trip planner
http://www.opentripplanner.org
Other
2.2k stars 1.03k forks source link

java.lang.OutOfMemoryError: Java heap space during building graph using Docker v 2.3.0 #5235

Closed christiansicari closed 1 year ago

christiansicari commented 1 year ago

Expected behavior

Building graph example with Berlin GTFS and OSM

Observed behavior

Java Memory Heap

11:34:29.996 INFO [main]  (GtfsModule.java:301) This Agency has the ID 841
11:34:29.996 INFO [main]  (GtfsModule.java:301) This Agency has the ID 846
11:34:29.996 INFO [main]  (GtfsModule.java:292) Reading entity: org.onebusaway.gtfs.model.Block
11:34:29.999 INFO [main]  (GtfsModule.java:292) Reading entity: org.onebusaway.gtfs.model.ShapePoint
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at org.apache.commons.beanutils.converters.DoubleConverter.convert(DoubleConverter.java:114)
    at org.onebusaway.csv_entities.schema.DefaultFieldMapping.convertCsvValue(DefaultFieldMapping.java:63)
    at org.onebusaway.csv_entities.schema.DefaultFieldMapping.translateFromCSVToObject(DefaultFieldMapping.java:47)
    at org.onebusaway.csv_entities.IndividualCsvEntityReader.readEntity(IndividualCsvEntityReader.java:131)
    at org.onebusaway.csv_entities.IndividualCsvEntityReader.handleLine(IndividualCsvEntityReader.java:98)
    at org.onebusaway.csv_entities.CsvEntityReader.readEntities(CsvEntityReader.java:157)
    at org.onebusaway.gtfs.serialization.GtfsReader.readEntities(GtfsReader.java:188)
    at org.onebusaway.csv_entities.CsvEntityReader.readEntities(CsvEntityReader.java:120)
    at org.onebusaway.csv_entities.CsvEntityReader.readEntities(CsvEntityReader.java:115)
    at org.onebusaway.csv_entities.CsvEntityReader.readEntities(CsvEntityReader.java:108)
    at org.opentripplanner.gtfs.graphbuilder.GtfsModule.loadBundle(GtfsModule.java:293)
    at org.opentripplanner.gtfs.graphbuilder.GtfsModule.buildGraph(GtfsModule.java:125)
    at org.opentripplanner.graph_builder.GraphBuilder.run(GraphBuilder.java:175)
    at org.opentripplanner.standalone.OTPMain.startOTPServer(OTPMain.java:141)
    at org.opentripplanner.standalone.OTPMain.main(OTPMain.java:55)
11:35:09.973 INFO [server-shutdown-info]  (OtpStartupInfo.java:44) OTP SHUTTING DOWN (version: 2.4.0-SNAPSHOT, ser.ver.id: 112, commit: 0d5d3860472d90fca5c52012874847419f2d4636, branch: dev-2.x)

Version of OTP used (exact commit hash or JAR name)

docker.io/opentripplanner/opentripplanner:latest, Image ID: 114f721cf608

Data sets in use (links to GTFS and OSM PBF files)

OSM Berlin: https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf GTFS: https://vbb.de/vbbgtfs

Command line used to start OTP

docker run --rm -v "/$(pwd)/berlin:/var/opentripplanner" docker.io/opentripplanner/opentripplanner:latest --build --save

Steps to reproduce the problem

Just follow the example at https://docs.opentripplanner.org/en/v2.3.0/Container-Image/

Attempts:

I am not a Java expert, but I understood there is something related to the assigned memory. I tried to solve using this variant, but I got same result:

 docker run -e JAVA_MX=8G  --rm -v "/$(pwd)/berlin:/var/opentripplanner" docker.io/opentripplanner/opentripplanner:latest --build --save 
christiansicari commented 1 year ago

Just solved in this way:

docker run -e JAVA_OPTS="-Xmx6g" --memory 8g  --rm -v "/$(pwd)/berlin:/var/opentripplanner" docker.io/opentripplanner/opentripplanner:latest --build --save