[GRASS-dev] Re: [GRASS GIS] #699: v.buffer segfault: in Vect_get_isle_points()

GRASS GIS trac at osgeo.org
Sat Jan 29 05:23:50 EST 2011


#699: v.buffer segfault:  in Vect_get_isle_points()
----------------------+-----------------------------------------------------
 Reporter:  neteler   |       Owner:  grass-dev@…              
     Type:  defect    |      Status:  new                      
 Priority:  normal    |   Milestone:  7.0.0                    
Component:  Vector    |     Version:  6.4.0 RCs                
 Keywords:  v.buffer  |    Platform:  All                      
      Cpu:  All       |  
----------------------+-----------------------------------------------------

Comment(by mmetz):

 Replying to [comment:10 mmetz]:
 > Replying to [comment:9 mmetz]:
 > > The second bug should now be fixed in r45219, r45220, r45221 (7.0,
 6.5, 6.4), working on Linux 32bit and 64bit.
 > >
 > Correction, it works on Linux 32bit and Windows, but not always on Linux
 64bit. On Linux 64 bit, v.buffer2 (and v.parallel2) create sometimes zero-
 size areas, the bug is somewhere in the vector libs, more specifically in
 buffer2.c and/or dgraph.c.
 >
 Test commands for the North Carolina dataset

 {{{
 v.extract input=roadsmajor at PERMANENT output=roads_multilane
 where="MULTILANE = 'yes'"
 v.buffer input=roads_multilane output=roads_multilane_buf distance=2000
 }}}

 results in

 {{{
 WARNING: Next edge was visited but it is not the first one !!! breaking
          loop
 WARNING: Next edge was visited but it is not the first one !!! breaking
          loop
 WARNING: Next edge was visited but it is not the first one !!! breaking
          loop
 WARNING: Vect_get_point_in_poly(): Unable to find point in polygon
 ERROR: Vect_get_point_in_poly() failed
 }}}

 if the patch from #1231 has been applied, otherwise it cycles forever as
 described for v.parallel2 in #1231, which happens because
 Vect_get_point_in_poly() can not find a point in a zero-size polygon. This
 happens only on Linux 64bit, not on Linux 32bit or Windows. The same
 command with distance=1000 completes on 64bit, but there are also warnings
 like

 {{{
 WARNING: Next edge was visited but it is not the first one !!! breaking
          loop
 }}}

 If this bug can not be resolved I would suggest to reactivate the original
 versions of v.buffer and v.parallel (the bugs described there are easy to
 fix within the module without touching the libs) and deactivate v.buffer2
 and v.parallel2.

 Markus M

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/699#comment:13>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list