osm-search / Nominatim

Open Source search based on OpenStreetMap data
https://nominatim.org
GNU General Public License v3.0
3.11k stars 713 forks source link

Problem with fresh installation #3394

Closed rscop closed 5 months ago

rscop commented 5 months ago

Describe the bug After installing, I receive an error trying to run any nominatim commands:

(nominatim-venv) nominatim@*****:~/nominatim-planet$ nominatim reverse --lat 48 --lon 22
2024-04-17 08:54:46: Using project directory: /srv/nominatim/nominatim-planet
Traceback (most recent call last):
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/ext/asyncio/engine.py", line 657, in execute
    result = await greenlet_spawn(
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
    result = context.switch(value)
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1422, in execute
    return meth(
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 514, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1644, in _execute_clauseelement
    ret = self._execute_context(
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1850, in _execute_context
    return self._exec_single_context(
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1990, in _exec_single_context
    self._handle_dbapi_exception(
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2360, in _handle_dbapi_exception
    raise exc_info[1].with_traceback(exc_info[2])
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1971, in _exec_single_context
    self.dialect.do_execute(
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 919, in do_execute
    cursor.execute(statement, parameters)
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/dialects/postgresql/psycopg.py", line 554, in execute
    result = self.await_(self._cursor.execute(query, params, **kw))
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 131, in await_only
    return current.driver.switch(awaitable)  # type: ignore[no-any-return]
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
  File "/srv/nominatim/nominatim-venv/lib/python3.10/site-packages/psycopg/cursor_async.py", line 89, in execute
    raise ex.with_traceback(None)
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.10/asyncio/tasks.py", line 456, in wait_for
    return fut.result()
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/bin/nominatim", line 12, in <module>
    exit(cli.nominatim(module_dir='/usr/local/lib/nominatim/module',
  File "/usr/local/lib/nominatim/lib-python/nominatim/cli.py", line 228, in nominatim
    return get_set_parser().run(**kwargs)
  File "/usr/local/lib/nominatim/lib-python/nominatim/cli.py", line 121, in run
    return args.command.run(args)
  File "/usr/local/lib/nominatim/lib-python/nominatim/clicmd/api.py", line 183, in run
    result = api.reverse(napi.Point(args.lon, args.lat),
  File "/usr/local/lib/nominatim/lib-python/nominatim/api/core.py", line 648, in reverse
    return self._loop.run_until_complete(self._async_api.reverse(coord, **params))
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/usr/local/lib/nominatim/lib-python/nominatim/api/core.py", line 245, in reverse
    return await geocoder.lookup(coord)
  File "/usr/local/lib/nominatim/lib-python/nominatim/api/reverse.py", line 565, in lookup
    row, tmp_row_func = await self.lookup_street_poi()
  File "/usr/local/lib/nominatim/lib-python/nominatim/api/reverse.py", line 308, in lookup_street_poi
    row = await self._find_closest_street_or_poi(distance)
  File "/usr/local/lib/nominatim/lib-python/nominatim/api/reverse.py", line 215, in _find_closest_street_or_poi
    return (await self.conn.execute(sql, self.bind_params)).one_or_none()
  File "/usr/local/lib/nominatim/lib-python/nominatim/api/connection.py", line 63, in execute
    return await asyncio.wait_for(self.connection.execute(sql, params), self.query_timeout)
  File "/usr/lib/python3.10/asyncio/tasks.py", line 458, in wait_for
    raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError

Also, when a I Run the DB check I got an error:

(nominatim-venv) nominatim@*****:~/nominatim-planet$ nominatim admin --check-database
2024-04-17 08:54:41: Using project directory: /srv/nominatim/nominatim-planet
2024-04-17 08:54:41: Checking database
Checking database connection ... OK
Checking database_version matches Nominatim software version ... Failed
Database version (None) doesn't match Nominatim version (4.4.0-0)

Hints:
* Are you connecting to the correct database?

Check the Migration chapter of the Administration Guide.

Project directory: /srv/nominatim/nominatim-planet
Current setting of NOMINATIM_DATABASE_DSN: pgsql:dbname=nominatim

To Reproduce Any command related to Nominatim

Software Environment (please complete the following information):

Hardware Configuration (please complete the following information):

Nominatim Configuration:

NOMINATIM_FLATNODE_FILE=/srv/nominatim/flatnode.file

Additional context: Im running an Europa Import from geofabrik.

Flatnode files:

du -h flatnode.file
88G     flatnode.file

DB size:

postgres=# SELECT pg_size_pretty(pg_database_size('nominatim'));
 pg_size_pretty
----------------
 385 GB
(1 row)

The end of my "import log":

2024-04-16 13:23:56: Done 1099720 in 1171 @ 938.808 per second - postcodes (location_postcode) ETA (seconds): 11.03
2024-04-16 13:23:56: Done 1100660 in 1171 @ 939.296 per second - postcodes (location_postcode) ETA (seconds): 10.02
2024-04-16 13:23:57: Done 1101600 in 1172 @ 939.739 per second - postcodes (location_postcode) ETA (seconds): 9.02
2024-04-16 13:23:57: Done 1102540 in 1172 @ 940.167 per second - postcodes (location_postcode) ETA (seconds): 8.01
2024-04-16 13:23:58: Done 1103480 in 1173 @ 940.685 per second - postcodes (location_postcode) ETA (seconds): 7.01
2024-04-16 13:23:58: Done 1104420 in 1173 @ 941.104 per second - postcodes (location_postcode) ETA (seconds): 6.01
2024-04-16 13:23:58: Done 1105360 in 1173 @ 941.648 per second - postcodes (location_postcode) ETA (seconds): 5.01
2024-04-16 13:23:59: Done 1106300 in 1174 @ 942.196 per second - postcodes (location_postcode) ETA (seconds): 4.01
2024-04-16 13:23:59: Done 1107240 in 1174 @ 942.590 per second - postcodes (location_postcode) ETA (seconds): 3.01
2024-04-16 13:24:00: Done 1108180 in 1175 @ 942.918 per second - postcodes (location_postcode) ETA (seconds): 2.01
2024-04-16 13:24:00: Done 1109120 in 1175 @ 943.313 per second - postcodes (location_postcode) ETA (seconds): 1.01
2024-04-16 13:24:01: Done 1110060 in 1176 @ 943.729 per second - postcodes (location_postcode) ETA (seconds): 0.02
2024-04-16 13:24:01: Done 1110075/1110075 in 1176 @ 943.664 per second - FINISHED postcodes (location_postcode)

2024-04-16 13:25:16: Post-process tables

Am I missing something during installation guide? Im pretty sure there were other steps in the old docs that are not present in the new one. (I already had and full planet import running on an old version, I think it was 4.2, but not sure. We had some server/disk issues and needed to reinstall again on a new machine)