mediagis / nominatim-docker

100% working container for Nominatim
Creative Commons Zero v1.0 Universal
1.07k stars 437 forks source link

OSM-Nominatim import error #432

Closed devopsnot closed 1 year ago

devopsnot commented 1 year ago

I'm trying to import Nominatim to an external database, but I'm getting the following error.

 2023-03-13 12:03:19: Using project directory: /nominatim
 2023-03-13 12:03:22: Creating database
 2023-03-13 12:03:25: Setting up country tables
 2023-03-13 12:03:27: Importing OSM data file
 2023-03-13 12:03:27  osm2pgsql version 1.7.1
 2023-03-13 12:03:27  Database version: 11.5
 2023-03-13 12:03:27  ERROR: stoi
 Traceback (most recent call last):
   File "/usr/local/bin/nominatim", line 14, in <module>
     exit(cli.nominatim(module_dir='/usr/local/lib/nominatim/module',
   File "/usr/local/lib/nominatim/lib-python/nominatim/cli.py", line 264, in nominatim
     return parser.run(**kwargs)
   File "/usr/local/lib/nominatim/lib-python/nominatim/cli.py", line 126, in run
     return args.command.run(args)
   File "/usr/local/lib/nominatim/lib-python/nominatim/clicmd/setup.py", line 92, in run
     database_import.import_osm_data(files,
   File "/usr/local/lib/nominatim/lib-python/nominatim/tools/database_import.py", line 108, in import_osm_data
     run_osm2pgsql(options)
   File "/usr/local/lib/nominatim/lib-python/nominatim/tools/exec_utils.py", line 152, in run_osm2pgsql
     subprocess.run(cmd, cwd=options.get('cwd', '.'),
   File "/usr/lib/python3.10/subprocess.py", line 524, in run
     raise CalledProcessError(retcode, process.args,
 subprocess.CalledProcessError: Command '['/usr/local/lib/nominatim/osm2pgsql', '--hstore', '--latlon', '--slim', '--with-forward-dependencies', 'false', '--log-progress', 'true', '--number-processes', '1', '--cache', '3105', '--output', 'gazetteer', '--style', '/usr/local/etc/nominatim/import-full.style', '--create', 'data.osm.pbf']' returned non-zero exit status 1.

My bank machine has 32GB of RAM, 8 core processor.

The machine where I'm running the container to carry out the import has 64GB of RAM, also with an 8-core processor.

It doesn't give me any log in the database, only that a new database was created

leonardehrenfried commented 1 year ago

What is the exact command that you run?

leonardehrenfried commented 1 year ago

stoi is a function that tries to convert a string to and int. Are you perhaps passing in an arguments that cannot be converted to an int?

devopsnot commented 1 year ago

I run the following docker-compose with 'docker compose up'


version: '3'

networks:
  nominatim_import:
    external: false

services:
  nominatim_import:
    image: mediagis/nominatim:4.1
    command:
    - /bin/bash
    - -ec
    - |
        nominatim import --osm-file data.osm.pbf --threads $$THREADS
        nominatim index --threads $$THREADS
        nominatim admin --check-database

        if [ "$$REPLICATION_ENABLED" = "true" ]; then
          nominatim replication --init
          if [ "$$FREEZE" = "true" ]; then
            echo "Skipping freeze because REPLICATION_URL is not empty"
          fi
        else
          if [ "$$FREEZE" = "true" ]; then
            echo "Freezing database"
            nominatim freeze
          fi
        fi;
    working_dir: /nominatim
    environment:
    - NOMINATIM_IMPORT_STYLE=full
    - NOMINATIM_DATABASE_DSN=pgsql:host=${NOMINATIM_DB_HOST};port=${NOMINATIM_DB_PORT};user=${NOMINATIM_DB_USER};password=${NOMINATIM_DB_PASSWORD};dbname=${NOMINATIM_DB_NAME}
    - NOMINATIM_REPLICATION_URL=${NOMINATIM_REPLICATION_URL}
    - REPLICATION_ENABLED=true
    - THREADS=${IMPORT_THREADS:-16}
    - NOMINATIM_DATABASE_WEBUSER=${NOMINATIM_DB_USER}
    networks:
    - nominatim_import
    volumes:
    - ${OSM_PBF_FOLDER:-/var/lib/docker/data/osm/geofabrik}/${OSM_PBF_FILE:-brazil-latest.osm.pbf}:/nominatim/data.osm.pbf
leonardehrenfried commented 1 year ago

I would try modifying the line with THREADS to just use a fixed value of 16.