I’m currently getting a puzzling crash from pgRouting which reliably takes the entire Postgres server down with it!
I’m calling pgRouting using Psycopg from Python. My Python code has some fancy multi-processor code, so I’ve managed to isolate the problem using just the psql command line program.
The crash messages were not very informative, so I’ve also managed to track down all the Postgres logging switches and switched everything on - or all that I can find. I can forward the resulting log file if anyone is interested, but it is a bit big to post to a public listserver.
There’s a lot of what I assume is tracing through pgRouting, followed by:
------8<-----8<----
2011-01-30 20:05:29 CST CONTEXT: SQL statement “SELECT gid as id, source::integer, target::integer, length::double precision as cost FROM view_topo where setSRID(‘BOX3D(145.6460916 -8.1986466,150.5752148 -5.2633439)’::BOX3D, 4326) && the_geom”
PL/pgSQL function “dijkstra_sp_delta_directed” line 110 at FOR over EXECUTE statement
PL/pgSQL function “dijkstra_sp_delta” line 18 at FOR over EXECUTE statement
2011-01-30 20:05:29 CST LOCATION: elog_node_display, .\src\backend\nodes\print.c:85
2011-01-30 20:05:29 CST STATEMENT: select sum(ST_Length( geography( ST_Transform(the_geom, 4326))) ) AS LENGTH FROM dijkstra_sp_delta(‘view_topo’, 2429451, 2475147, 1.0);
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.
---------8<------8<-------
Then what looks to be recovery logging.
The SELECT statement that causes this is logged as:
2011-01-30 20:04:57 CST STATEMENT: select sum(ST_Length( geography( ST_Transform(the_geom, 4326))) ) AS LENGTH FROM dijkstra_sp_delta(‘view_topo’, 2429451, 2475147, 1.0);
Nodes 2429451 and 2475147 both exist in view_topo - I’ve checked.
The database is the OSM planet.osm file, imported with osm2po. The above two nodes are in Papua New Guinea. Initial (limited) tests with the UK are fine; Guam is completely fine; but New Zealand and PG cause this crash - haven’t tried anywhere else yet.
I’ve already tried the above query with non-routable routes in the UK (eg. from England to Belfast), and those have behaved as expected with zero rows returned. So this isn’t the problem.
My system details:
Windows 7 x32
Postgres 8.4
PostGIS 1.5
I’m having trouble determining my pgRouting version, but routing_core_wrappers.sql has a “last changes” date of 14/02/2008
Yes I’m using mainly older versions, but I am forced to do this due to availability of pre-built versions. Eg. PostGIS does not have a 64 bit version; and the general lack of later Windows builds of pgRouting.
Has anyone seen anything like this before?
Any thoughts as to what the problem might be?
It seems pretty bad if it can bring the entire server down with it…
Thanks in advance,
Richard Marsden