[pgrouting-users] PostGIS - Problem with driving_distance segfault when calculating distance for many nodes

Weninger Kurt kurt.weninger at utanet.at
Tue Aug 30 15:04:16 EDT 2011


Hi !

I am calculating the shortest paths for some nodes of a large network with
about 600.000 nodes and edges. Building network topology works fine, also
computing the distance for one node.
The problem I am encountering occurs when I am trying to calculate the
shortest path matrix for several selected nodes (about 1000) at once. I am
calling the function for each node and as I also have reverse costs are
getting the resulting matrix.
Problem is that I get a segfault in librouting_dd.so after ~ 170 nodes in
Windows and ~ 300 nodes in Linux. The backtrace leads me to line 162 of
boost_drivedist.cpp.
When I am doing the calculation in pieces of 100 nodes and logging out
between calculations everything works fine.

I think the problem is using malloc to reserve memory, as I observed
increasing memory usage of process postgres.

  *path = (path_element_t *) malloc( sizeof(path_element_t) *
                                     (path_vector.size() + 1) );

It seems to me the memory is never freed.
Can this be solved using palloc ?  And how ?  Because I tried changing
malloc to palloc, but getting strange errors in other libraries
afterwards.

Thanks for your help,

Kurt





More information about the Pgrouting-users mailing list