]> git.openstreetmap.org Git - nominatim.git/commitdiff
fail on error
authorSarah Hoffmann <lonvia@denofr.de>
Mon, 30 Jul 2012 22:31:38 +0000 (00:31 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Mon, 30 Jul 2012 22:31:38 +0000 (00:31 +0200)
- stop indexing if there is any other error than deadlock from the DB
- stop import if osm2pgsql or indexing fails

nominatim/index.c
utils/setup.php

index 9667e50565e4ea1e96b6fc7e2bcd056bb0876f71..f337a9ece5d8560cedc9399de8543f0a8e3e9a07 100644 (file)
@@ -369,8 +369,7 @@ void *nominatim_indexThread(void * thread_data_in)
                        {
                            fprintf(stderr, "index_placex: UPDATE failed: %s", PQerrorMessage(thread_data->conn));
                            PQclear(res);
-                            sleep(rand() % 10);
-//                         exit(EXIT_FAILURE);
+                           exit(EXIT_FAILURE);
                        }
                }
         }
index 07faa2df2a92e4f878be9eba89f6a82d193fdff4..c842ba33e40b927b2ff1ab23fc0770dcb608b236 100755 (executable)
                $osm2pgsql .= ' -lsc -O gazetteer --hstore';
                $osm2pgsql .= ' -C '.$iCacheMemory;
                $osm2pgsql .= ' -d '.$aDSNInfo['database'].' '.$aCMDResult['osm-file'];
-               passthru($osm2pgsql);
+               passthruCheckReturn($osm2pgsql);
 
                $oDB =& getDB();
                $x = $oDB->getRow('select * from place limit 1');
                $sOutputFile = '';
                if (isset($aCMDResult['index-output'])) $sOutputFile = ' -F '.$aCMDResult['index-output'];
                $sBaseCmd = CONST_BasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -t '.$iInstances.$sOutputFile;
-               passthru($sBaseCmd.' -R 4');
+               passthruCheckReturn($sBaseCmd.' -R 4');
                if (!$aCMDResult['index-noanalyse']) pgsqlRunScript('ANALYSE');
-               passthru($sBaseCmd.' -r 5 -R 25');
+               passthruCheckReturn($sBaseCmd.' -r 5 -R 25');
                if (!$aCMDResult['index-noanalyse']) pgsqlRunScript('ANALYSE');
-               passthru($sBaseCmd.' -r 26');
+               passthruCheckReturn($sBaseCmd.' -r 26');
        }
 
        if ($aCMDResult['create-search-indices'] || $aCMDResult['all'])
 
                proc_close($hProcess);
        }
+
+       function passthruCheckReturn($cmd)
+       {
+               $result = -1;
+               passthru($cmd, $result);
+               if ($result != 0) fail('Error executing external command: '.$cmd);
+       }