You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2020-08-11 20:08:26

Hupa
Member
Registered: 2020-08-11
Posts: 5

nominatim search index stalls on build

Hi,
I am building a private nominatim server. I have access to a CentOS 7 server with 128GB RAM and 10 CPU's, using PostgeSQL 11, Nominatim 3.5.1 and currently loading planet.
After a while and finishing the indexing. See below
=====

INFO: Done 104662026 in 36629 @ 2857.292 per second - rank 30 ETA (seconds): 10.08
INFO: Done 104664883 in 36631 @ 2857.269 per second - rank 30 ETA (seconds): 9.08
INFO: Done 104667740 in 36632 @ 2857.248 per second - rank 30 ETA (seconds): 8.08
INFO: Done 104670597 in 36633 @ 2857.229 per second - rank 30 ETA (seconds): 7.08
INFO: Done 104673454 in 36634 @ 2857.229 per second - rank 30 ETA (seconds): 6.08
INFO: Done 104676311 in 36635 @ 2857.224 per second - rank 30 ETA (seconds): 5.08
INFO: Done 104679168 in 36636 @ 2857.216 per second - rank 30 ETA (seconds): 4.08
INFO: Done 104682025 in 36637 @ 2857.205 per second - rank 30 ETA (seconds): 3.08
INFO: Done 104684882 in 36639 @ 2857.183 per second - rank 30 ETA (seconds): 2.08
INFO: Done 104687739 in 36882 @ 2838.424 per second - rank 30 ETA (seconds): 1.09
INFO: Done 104690577 in 36883 @ 2838.410 per second - rank 30 ETA (seconds): 0.09
WARNING: Done 104690846/104690837 in 36883 @ 2838.395 per second - FINISHED rank 30

2020-08-11 17:00:16 == Index postcodes
2020-08-11 17:41:21 == Create Search indices
=======
At that point the machines CPU consumption goes down to 0% to stay there.
Reading the manual I tried
./utils/setup.php --index --create-search-indices --create-country-names --index-noanalyse

This processes a bunch and then says:
=======
WARNING: Starting interpolation lines (location_property_osmline)
WARNING: Done 0/0 in 0 @ 0.000 per second - FINISHED interpolation lines (location_property_osmline)

WARNING: Starting rank 30
WARNING: Done 0/0 in 0 @ 0.000 per second - FINISHED rank 30

2020-08-11 18:20:46 == Index postcodes
2020-08-11 18:21:37 == Create Search indices
ERROR:  relation "idx_word_word_id" already exists
ERROR: pgsql returned with error code (3)
string(34) "pgsql returned with error code (3)"
=======

Another attempt then is:
=======
./utils/setup.php --create-search-indices
2020-08-11 18:32:25 == module path: /srv/nominatim/build/module
2020-08-11 18:32:25 == Create Search indices
ERROR:  relation "idx_word_word_id" already exists
ERROR: pgsql returned with error code (3)
string(34) "pgsql returned with error code (3)"
=======

Not much luck.
1) is there a reason why creating search indexes stalls?
2) how can I get ride of the relation "idx_word_word_id"? so the system might restart (not feeling like dropping the database and reimporting for another 36 hours or so.
3) does anybody know where I should be able to see at logging what is causing the process to stall?

Thanks in advance

Offline

#2 2020-08-17 17:35:18

Hupa
Member
Registered: 2020-08-11
Posts: 5

Re: nominatim search index stalls on build

So, one small step further.
I have found the way to remove the relationship and was able to run indexes again.
Again the CPU goes to zero and nothing happens. So the question remains:
- What is the reason for the process to come to a halt?
- Is there a logging that might show me what is causing this premature halt?

Thanks in advance

Offline

#3 2020-08-21 11:29:42

Hupa
Member
Registered: 2020-08-11
Posts: 5

Re: nominatim search index stalls on build

Hi all,
some more testing and I have found the culprit.
The systems seems to run into a deadlock situation on the database.
I have pulled screenshots but I do not know how to paste them in here.
Anyway While the system tries to do "CREATE INDEX idx_place_addressline_address_place... there is also a "autovacuum: VACUUM public.place_addressline running, both referring to the same table. As the Autovacuum doesn't seem to stop, but holds an exclusive look on the table, the create index waits (indefinitely).
When I terminate the Autovacuum the Create index resumes. The Autovacuum (which is why it is auto I assume) is restarted immediately, but is now waiting for the completion of the CREATE INDEX. Once that is done, the next CREATE INDEX will find its table to be locked. So I needed a number of "terminate process" before it all completed.
I suppose one of the developers should have a look how this behavior was introduced.

Thanks

Offline

Board footer

Powered by FluxBB