[GRASS-dev] [GRASS GIS] #3061: "Export vector data as multi-features" leads to crash
GRASS GIS
trac at osgeo.org
Sun Jun 12 03:21:50 PDT 2016
#3061: "Export vector data as multi-features" leads to crash
---------------------+--------------------------------------
Reporter: neo | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.0.5
Component: Vector | Version: unspecified
Resolution: | Keywords: v.out.ogr, multifeatures
CPU: x86-64 | Platform: MSWindows 7
---------------------+--------------------------------------
Comment (by neteler):
In the first place I have some doubts that you can automatically fix these
severe topological errors in the map (with the digitizer, yes). See
attached screenshot.
Anyway, I checked with the debugger:
{{{
gdb v.out.ogr
(gdb) r -s -m input=tempB output=~/tmp format=ESRI_Shapefile
Exporting 3999 areas (may take some time)...
0%
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff79538f7 in Vect_get_area_points (Map=0x7fffffffcce0,
area=-1979, BPoints=0xb76460) at area.c:54
54 G_debug(3, " n_lines = %d", Area->n_lines);
(gdb)
(gdb) bt full
#0 0x00007ffff79538f7 in Vect_get_area_points (Map=0x7fffffffcce0,
area=-1979, BPoints=0xb76460) at area.c:54
Plus = 0x7fffffffccf0
Area = 0x7bc00000879
#1 0x000000000040445a in create_polygon (In=0x7fffffffcce0, area=-1979,
Points=0xb76460) at export_areas.c:294
j = -13088
k = 32767
Ogr_geometry = 0xf9f
ring = 0x82a580
#2 0x00000000004040ed in export_areas_multi (In=0x7fffffffcce0, field=1,
donocat=0, Ogr_featuredefn=0xb74e30, Ogr_layer=0xb5cef0,
Fi=0xb74ac0, driver=0xb752b0, ncol=6, colctype=0xb74fb0,
colname=0xb75140, doatt=1, nocat=1, n_noatt=0x7fffffffb34c,
n_nocat=0x7fffffffb348) at export_areas.c:193
i = 0
n_exported = 0
area = -1979
cat = 1
ncats_field = 1
line = 8819
type = 32767
findex = 1
ipart = 1
Points = 0xb76460
Cats = 0xb76440
cat_list = 0xb762c0
line_list = 0xb76490
lcats = 0xb764b0
Ogr_geometry = 0xb760a0
Ogr_geometry_part = 0xb75fc0
Ogr_feature = 0x40ab38
wkbtype = wkbMultiPolygon
wkbtype_part = wkbPolygon
#3 0x0000000000403b92 in export_areas (In=0x7fffffffcce0, field=1,
multi=1, donocat=0, Ogr_featuredefn=0xb74e30, Ogr_layer=0xb5cef0,
Fi=0xb74ac0, driver=0xb752b0, ncol=6, colctype=0xb74fb0,
colname=0xb75140, doatt=1, nocat=1, noatt=0x7fffffffb34c,
fout=0x7fffffffb348) at export_areas.c:26
No locals.
#4 0x0000000000408137 in main (argc=7, argv=0x7fffffffd5e8) at main.c:737
i = 6
otype = 64
ftype = 0
donocat = 0
num_to_export = 3999
field = 1
overwrite = 1
found = 1
module = 0x7ffff751d7a8 <state+40>
options = {input = 0x7ffff751d808 <state+136>, dsn = 0x628860,
layer = 0x66cf20, type = 0x6287a0, format = 0x628920,
field = 0x6286e0, dsco = 0x66d230, lco = 0x66d2d0, otype =
0x66cfc0}
flags = {cat = 0x66d370, esristyle = 0x66d3a0, update =
0x7ffff751d7d8 <state+88>, nocat = 0x66c250, new = 0x66d430,
append = 0x66cc70, force2d = 0x66d3d0, multi = 0x66d400}
buf =
"HTTP\000\060\000S\000arch\000\000\000\220\313\371\367\377\177\000\000H\265\371\367\377\177\000\000\340\325\377\377\377\177\000\000@\003\000\000\000\000\000\000\177ELF\002\001\001\000\000\000\000\000\000\000\000\000\003\000>\000\001\000\000\000P\v\000\000\000\000\000\000@\000\000\000\000\000\000\000\020%\000\000\000\000\000\000\000\000\000\000@\000\070\000\a\000@\000\034\000\033\000\001\000\000\000\005",
'\000' <repeats 27 times>,
"\024\025\000\000\000\000\000\000\024\025\000\000\000\000\000\000\000\000
\000\000\000\000\000\001\000\000\000\006\000\000\000\250\035\000\000\000\000\000\000\250\035
\000\000\000\000\000\250\035 \000\000\000\000\000"...
key1 = "cat\000\377\177\000\000\000
\372\367\377\177\000\000\020\275\377\377\377\177\000\000\000\000\200y\377\377\377\377\220\304\377\377\377\177\000\000S\224\336\367\377\177\000\000\001\000\000\000\377\177\000\000\240\071\372\367\377\177\000\000@\275\377\377\377\177\000\000\000\000\340y\377\377\377\377\220\304\377\377\377\177\000\000S\224\336\367\377\177\000\000\001\000\000\000\377\177\000\000\320\064\372\367\377\177\000\000p\275\377\377\377\177\000\000\000\000 at z\377\377\377\377\220\304\377\377\377\177\000\000S\224\336\367\377\177\000\000\001\000\000\000\377\177\000\000\000\060\372\367\377\177\000\000\240\275\377\377\377\177\000\000\000\000\240z\377\377\377\377\220\304\377\377\377\177\000\000S\224\336\367\377\177\000\000\001\000\000\000\377\177\000\000"...
key2 =
"lat\000\000ers_c\000\367\377\177\000\000\001\000\000\000\377\177\000\000\000\020\373\367\377\177\000\000\360\304\377\377\377\177\000\000\000\000@\211\377\377\377\377\220\321\377\377\377\177\000\000S\224\336\367\377\177\000\000\001\000\000\000\377\177\000\000\310)\373\367\377\177\000\000
\305\377\377\377\177\000\000\000\000\240\211\377\377\377\377\220\321\377\377\377\177\000\000S\224\336\367\377\177\000\000\001\000\000\000\377\177\000\000\350$\373\367\377\177\000\000P\305\377\377\377\177\000\000\000\000\000\212\377\377\377\377\220\321\377\377\377\177\000\000S\224\336\367\377\177\000\000\001\000\000\000\377\177\000\000\000
\373\367\377\177\000\000\200\305\377\377\377\177\000\000\000\000`\212\377\377\377\377\220\321\377\377\377\177\000\000"...
cellhd = {format = 0, compressed = -1, rows = 1, rows3 = 1, cols =
1, cols3 = 1, depths = 1, proj = 99, zone = 0, ew_res = 1,
ew_res3 = 1, ns_res = 1, ns_res3 = 1, tb_res = 1, north = 1,
south = 0, east = 1, west = 0, top = 1, bottom = 0}
tokens = 0x7fffe22b60b0
In = {format = 0, temporary = 0, dblnk = 0xa13f40, plus = {version
= {topo = {major = 5, minor = 1, back_major = 5,
back_minor = 1}, spidx = {major = 5, minor = 1, back_major
= 5, back_minor = 1}, cidx = {major = 5, minor = 0,
back_major = 5, back_minor = 0}}, with_z = 0, spidx_with_z
= 0, off_t_size = 4, head_size = 142,
spidx_head_size = 113, cidx_head_size = 9, release_support =
0, port = {byte_order = 0, off_t_size = 0,
dbl_cnvrt = "\000\001\002\003\004\005\006\a", flt_cnvrt =
"\000\001\002\003", lng_cnvrt = "\000\001\002\003",
int_cnvrt = "\000\001\002\003", shrt_cnvrt = "\000\001",
off_t_cnvrt = "\000\001\002\003\004\005\006\a", dbl_quick = 1,
flt_quick = 1, lng_quick = 1, int_quick = 1, shrt_quick = 1,
off_t_quick = 1}, spidx_port = {byte_order = 0,
off_t_size = 4, dbl_cnvrt =
"\000\001\002\003\004\005\006\a", flt_cnvrt = "\000\001\002\003",
lng_cnvrt = "\000\001\002\003", int_cnvrt =
"\000\001\002\003", shrt_cnvrt = "\000\001",
off_t_cnvrt = "\000\001\002\003\004\005\006\a", dbl_quick =
1, flt_quick = 1, lng_quick = 1, int_quick = 1,
shrt_quick = 1, off_t_quick = 1}, cidx_port = {byte_order =
0, off_t_size = 0,
dbl_cnvrt = "\000\001\002\003\004\005\006\a", flt_cnvrt =
"\000\001\002\003", lng_cnvrt = "\000\001\002\003",
int_cnvrt = "\000\001\002\003", shrt_cnvrt = "\000\001",
off_t_cnvrt = "\000\001\002\003\004\005\006\a", dbl_quick = 1,
flt_quick = 1, lng_quick = 1, int_quick = 1, shrt_quick = 1,
off_t_quick = 1}, mode = 0, built = 4, box = {
N = 5415981.7036623769, S = -377147.33264612779, E =
7316584.6849710029, W = 2020203.1128580575, T = 0, B = 0},
Node = 0x672180, Line = 0x785040, Area = 0x87cd60, Isle =
0x8fc230, n_plines = 0, n_llines = 0, n_blines = 9636,
n_clines = 4462, n_flines = 0, n_klines = 0, n_vfaces = 0,
n_hfaces = 0, n_nodes = 7914, n_edges = 0, n_lines = 14098,
n_areas = 3999, n_isles = 2269, n_faces = 0, n_volumes = 0,
n_holes = 0, alloc_nodes = 7914, alloc_edges = 0,
alloc_lines = 14098, alloc_areas = 3999, alloc_isles = 2269,
alloc_faces = 0, alloc_volumes = 0, alloc_holes = 0,
Node_offset = 142, Edge_offset = 0, Line_offset = 312598,
Area_offset = 555112, Isle_offset = 668908, Volume_offset = 0,
Hole_offset = 0, Spidx_built = 1, Spidx_new = 0, Spidx_file =
1, spidx_fp = {file = 0x924290, start = 0x0, current = 0x0,
end = 0x0, size = 0, alloc = 0, loaded = 0},
Node_spidx_offset = 671749, Line_spidx_offset = 1876029,
Area_spidx_offset = 2224937, Isle_spidx_offset = 2424857,
Face_spidx_offset = 0, Volume_spidx_offset = 0,
Hole_spidx_offset = 0, Node_spidx = 0x66e0f0, Line_spidx =
0x99a850, Area_spidx = 0xa13d30, Isle_spidx = 0xa8d210,
Face_spidx = 0x0, Volume_spidx = 0x0, Hole_spidx = 0x0,
update_cidx = 0, n_cidx = 3, a_cidx = 5, cidx = 0x6717b0,
cidx_up_to_date = 1, coor_size = 3142923, coor_mtime = 0,
uplist = {do_uplist = 0, uplines = 0x0, uplines_offset = 0x0,
alloc_uplines = 0, n_uplines = 0, upnodes = 0x0,
alloc_upnodes = 0, n_upnodes = 0}}, open = 1428335138, mode = 0,
level = 2, head_only = 0, support_updated = 0, name = 0x6719a0
"tempB", mapset = 0x671af0 "user1",
location = 0x671b10 "eu_laea", gisdbase = 0x671b30
"/home/neteler/grassdata", next_line = 1, constraint = {region_flag = 0,
box = {N = 0, S = 0, E = 0, W = 0, T = 0, B = 0}, type_flag =
0, type = 0, field_flag = 0, field = 0}, proj = 0,
hist_fp = 0xb309d0, dgraph = {line_type = 0, graph_s = {iErrno =
0, Version = 0 '\000', Endian = 0 '\000',
NodeAttrSize = 0, EdgeAttrSize = 0, aOpaqueSet = {0 <repeats
16 times>}, cNode = 0, cHead = 0, cTail = 0, cAlone = 0,
cEdge = 0, nnCost = 0, Flags = 0, nFamily = 0, nOptions = 0,
pNodeTree = 0x0, pEdgeTree = 0x0, pNodeBuffer = 0x0,
iNodeBuffer = 0, pEdgeBuffer = 0x0, iEdgeBuffer = 0,
edgePrioritizer = {cEdge = 0, iEdge = 0, pEdgePri32Item = 0x0,
pvAVL = 0x0}, nodePrioritizer = {pvAVL = 0x0}}, spCache =
{nStartNode = 0, NodeHeap = {index = 0, count = 0,
block = 0, pnode = 0x0}, pvVisited = 0x0, pvPredist =
0x0}, edge_fcosts = 0x0, edge_bcosts = 0x0, node_costs = 0x0,
cost_multip = 0}, head = {organization = 0x671b50 "", date =
0x671b70 "", user_name = 0x671b90 "neteler",
map_name = 0x671bb0 "", source_date = 0x671a80 "Sun Jun 12
12:06:43 2016", orig_scale = 1, comment = 0x671bd0 "",
proj = 99, plani_zone = 0, digit_thresh = 0, coor_version =
{major = 5, minor = 1, back_major = 5, back_minor = 1},
with_z = 0, size = 3142923, head_size = 18, port = {byte_order
= 0, off_t_size = 0,
dbl_cnvrt = "\000\001\002\003\004\005\006\a", flt_cnvrt =
"\000\001\002\003", lng_cnvrt = "\000\001\002\003",
int_cnvrt = "\000\001\002\003", shrt_cnvrt = "\000\001",
off_t_cnvrt = "\000\001\002\003\004\005\006\a", dbl_quick = 1,
flt_quick = 1, lng_quick = 1, int_quick = 1, shrt_quick = 1,
off_t_quick = 1}, last_offset = 2669508, recycle = 0x0},
dig_fp = {file = 0xb307a0, start = 0x0, current = 0x0, end =
0x0, size = 0, alloc = 0, loaded = 0}, fInfo = {i = 0, ogr = {
driver_name = 0x0, dsn = 0x0, layer_name = 0x0, driver =
0x0, ds = 0x0, layer = 0x0, dbdriver = 0x0, dsn_options = 0x0,
layer_options = 0x0, cache = {lines = 0x0, lines_types =
0x0, lines_cats = 0x0, lines_alloc = 0, lines_num = 0,
lines_next = 0, fid = 0, sf_type = SF_GEOMETRY, ctype =
0}, feature_cache = 0x0, offset = {array = 0x0,
array_num = 0, array_alloc = 0}, next_line = 0}, pg =
{conninfo = 0x0, db_name = 0x0, schema_name = 0x0,
table_name = 0x0, fid_column = 0x0, geom_column = 0x0,
feature_type = SF_GEOMETRY, coor_dim = 0, srid = 0,
dbdriver = 0x0, fi = 0x0, inTransaction = 0, conn = 0x0, res
= 0x0, cursor_name = 0x0, cursor_fid = 0, next_line = 0,
cache = {lines = 0x0, lines_types = 0x0, lines_cats = 0x0,
lines_alloc = 0, lines_num = 0, lines_next = 0, fid = 0,
sf_type = SF_GEOMETRY, ctype = 0}, offset = {array = 0x0,
array_num = 0, array_alloc = 0}, topogeom_column = 0x0,
toposchema_name = 0x0, toposchema_id = 0, topo_geo_only =
0}}, site_att = 0x0, n_site_att = 0, n_site_dbl = 0,
n_site_str = 0}
doatt = 1
ncol = 6
colsqltype = 3
colwidth = 20
keycol = 0
colctype = 0xb74fb0
colname = 0xb75140
Fi = 0xb74ac0
Driver = 0xb752b0
Table = 0xb74c30
dbstring = {string = 0xb73940 "tempB", nalloc = 6}
Column = 0xb75e00
n_feat = 0
n_nocat = 0
n_noatt = 0
drn = 4
ogr_ftype = OFTInteger
Ogr_ds = 0xb330c0
Ogr_driver = 0x6529d0
Ogr_layer = 0xb5cef0
Ogr_field = 0xb760a0
Ogr_featuredefn = 0xb74e30
wkbtype = wkbMultiPolygon
Ogr_projection = 0xb31080
papszDSCO = 0x0
papszLCO = 0x0
num_types = 1
(gdb)
}}}
So, reproducible but I am not quite sure what's wrong (out of my
expertise).
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/3061#comment:3>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list