[GRASS-dev] Re: [GRASS GIS] #699: v.buffer2 segfault: in
Vect_get_isle_points()
GRASS GIS
trac at osgeo.org
Mon Apr 4 05:49:18 EDT 2011
#699: v.buffer2 segfault: in Vect_get_isle_points()
----------------------+-----------------------------------------------------
Reporter: neteler | Owner: grass-dev@…
Type: defect | Status: closed
Priority: normal | Milestone: 7.0.0
Component: Vector | Version: 6.4.0 RCs
Resolution: fixed | Keywords: v.buffer
Platform: All | Cpu: All
----------------------+-----------------------------------------------------
Comment(by mlennert):
However, testing with the other example (see Mon, Oct 9 2006 08:02:33)
from the old RT report gives the following, seems to reveal some remaining
issues.
First of all, I cannot reproduce the procedure exactly, as the v.buffer
call with bufcolumn=lane_cout gives me
{{{
GRASS 7.0.svn (nc_spm_06):~ > v.buffer vbuf_fill_bug bufcol=lane_count
out=vbuf_fill_bug_lanes scale=150
ATTENTION : The bufcol option may contain bugs during the cleaning step.
If
you encounter problems, use the debug option or clean manually
with v.clean tool=break; v.category step=0; v.extract -d
type=area
ERREUR :The bufcol option requires a valid layer.
}}}
Looking at the table connection info:
{{{
GRASS 7.0.svn (nc_spm_06):~ > v.db.connect -p $OUTMAP
Vector map <vbuf_fill_bug> is connected by:
layer <1/vbuf_fill_bug> table <vbuf_fill_bug> in database
</home/mlennert/GRASS/DATA/nc_spm_06/mlennert/dbf/> through driver <dbf>
with key <cat>
}}}
the layer <1/vbuf_fill_bug> looks weird. This should be layer <1>, no ?
(At least it is in dev6).
So, for now, I just try it without the bufcol parameter:
{{{
v.buffer input=$OUTMAP output=${OUTMAP}_buf_dyn dist=450 --o
}}}
which gives me a segfault during the "Deleting boundaries" stage. Here's
the end of the debug output:
{{{
D3/3: dig__angle_next_line: line = -41, side = 1, type = 4
D3/3: node = 25
D3/3: n_lines = 3
D3/3: i = 0 line = 45 angle = -2.446704
D3/3: i = 1 line = 119 angle = -2.371544
D3/3: i = 2 line = -41 angle = 0.770048
D3/3: current position = 2
D3/3: next = 1 line = 119 angle = -2.371544
D3/3: this one
D3/3: dig_node_line_angle: node = 25 line = 119
D3/3: Unclosed area:
D3/3: n_lines = 0
D3/3: Build area for line = -29, side = 1
D3/3: Vect_build_line_area() line = 29, side = 1
D3/3: dig_line_get_area(): line = 29, side = 1 (left), area = 0
D3/3: dig_build_area_with_line(): first_line = 29, side = 1
D3/3: dig_node_line_angle: node = 12 line = 29
D3/3: dig__angle_next_line: line = 29, side = 2, type = 4
D3/3: node = 12
D3/3: n_lines = 1
D3/3: i = 0 line = 29 angle = 2.079045
D3/3: current position = 0
D3/3: next = 0 line = 29 angle = 2.079045
D3/3: this one
D3/3: next_line = 29
D3/3: dig_node_angle_check: line = 29, type = 4
D3/3: dig_node_line_angle: node = 12 line = 29
D3/3: dig__angle_next_line: line = 29, side = 2, type = 4
D3/3: node = 12
D3/3: n_lines = 1
D3/3: i = 0 line = 29 angle = 2.079045
D3/3: current position = 0
D3/3: next = 0 line = 29 angle = 2.079045
D3/3: this one
D3/3: dig_node_line_angle: node = 12 line = 29
D3/3: The line to the right has the same angle: node = 12, line = 29
D3/3: Cannot build area, a neighbour of the line 29 has the same angle at
the node
D3/3: n_lines = 0
D3/3: Vect_attach_isles ()
D3/3: Vect_select_isles_by_box()
D3/3: Box(N,S,E,W,T,B): 5.853381e+06, 5.851999e+06, 1.773754e+06,
1.772819e+06, 0.000000e+00, 0.000000e+00
D3/3: dig_select_isles()
D3/3: 1 isles selected
D3/3: number of isles to attach = 1
D3/3: Vect_attach_isle (): isle = 1
D3/3: Vect_isle_find_area () island = 1
D3/3: Vect_select_areas_by_box()
D3/3: Box(N,S,E,W,T,B): 5.850540e+06, 5.850540e+06, 1.770830e+06,
1.770830e+06, 1.797693e+308, -1.797693e+308
D3/3: dig_select_areas()
D3/3: 1 areas selected
D3/3: area = 20 pointer to area structure = 910d088
D3/3: 1 areas overlap island boundary point
D3/3: area = 20
D3/3: area inside isolated isle
D3/3: Island 1 is not in area
D3/3: isle = 1 -> area outside = 0
D3/3: updated lines : 0 , updated nodes : 0
D3/3: delete line 29
D3/3: Vect_delete_line(): name = vbuf_fill_bug_buf_dyn, line = 29
D3/3: V2_delete_line_nat(), line = 29
D3/3: V1_delete_line_nat(), offset = 5086
D3/3: dig__angle_next_line: line = 29, side = 2, type = 4
D3/3: node = 12
D3/3: n_lines = 1
D3/3: i = 0 line = 29 angle = 2.079045
D3/3: current position = 0
D3/3: next = 0 line = 29 angle = 2.079045
D3/3: this one
D3/3: dig__angle_next_line: line = 29, side = 1, type = 4
D3/3: node = 12
D3/3: n_lines = 1
D3/3: i = 0 line = 29 angle = 2.079045
D3/3: current position = 0
D3/3: next = 0 line = 29 angle = 2.079045
D3/3: this one
D3/3: dig__angle_next_line: line = -29, side = 2, type = 4
D3/3: node = 13
D3/3: n_lines = 2
D3/3: i = 0 line = -29 angle = -0.800748
D3/3: i = 1 line = 30 angle = 2.340845
D3/3: current position = 0
D3/3: next = 1 line = 30 angle = 2.340845
D3/3: this one
D3/3: dig__angle_next_line: line = -29, side = 1, type = 4
D3/3: node = 13
D3/3: n_lines = 2
D3/3: i = 0 line = -29 angle = -0.800748
D3/3: i = 1 line = 30 angle = 2.340845
D3/3: current position = 0
D3/3: next = 1 line = 30 angle = 2.340845
D3/3: this one
D3/3: dig_del_line() line = 29
D3/3: dig_spidx_del_line(): line = 29
D3/3: box(x1,y1,z1,x2,y2,z2): 1773637.964964 5852700.640374 0.000000
1773675.441777 5852745.598814 0.000000
D3/3: ret = 0
D3/3: node 12 has 0 lines -> delete
D3/3: dig_spidx_del_node(): node = 12
D3/3: Build area for line = 29, side = 2
D3/3: Vect_build_line_area() line = 29, side = 2
Segmentation fault
}}}
Moritz
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/699#comment:26>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list