[postgis-tickets] [PostGIS] #4684: concurrent topology construction routine may result in invalid topology
PostGIS
trac at osgeo.org
Mon Aug 2 11:45:59 PDT 2021
#4684: concurrent topology construction routine may result in invalid topology
-----------------------+---------------------------
Reporter: laopsahl | Owner: strk
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 3.0.4
Component: topology | Version: 3.0.x
Resolution: | Keywords:
-----------------------+---------------------------
Comment (by strk):
I've pushed a script to see the effects of concurrent topology population.
Interesting, in some cases you also get deadlocks, like in this output:
{{{
$ ./check_multiprocess_topology_population.sh
ERROR: SQL/MM Spatial exception - geometry crosses edge 1
ERROR: Edge changed disposition around start node 1
ERROR: Side-location conflict: new edge starts in face 1 and ends in face
2
ERROR: SQL/MM Spatial exception - geometry crosses edge 5
ERROR: deadlock detected
DETAIL: Process 174600 waits for ShareLock on transaction 3178504;
blocked by process 174602.
Process 174602 waits for ShareLock on transaction 3178502; blocked by
process 174600.
HINT: See server log for query details.
CONTEXT: while updating tuple (1,3) in relation "edge_data"
SQL statement "UPDATE "mt_topo".edge_data SET next_right_edge= -16,
abs_next_right_edge= 16 WHERE start_node = 5 AND next_right_edge= -5 AND
abs_next_right_edge= 5 AND edge_id != 16"
Topology mt_topo (id 697, SRID 0, precision 0)
11 nodes, 17 edges, 9 faces, 0 topogeoms in 0 layers
}}}
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/4684#comment:28>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list