[GRASS-dev] [bug #5176] (grass) v.in.ogr: segfault when a full path to dsn is missing

hamish_nospam@yahoo.com wrote (Tue, Oct 3 2006 05:47:19):

Maciek Sieczka via RT wrote:

$ v.in.ogr dsn=shorter/

what if you leave off the trailing "/" in the dsn?

It doesn't change anything. Still a segfault if
"dsn=force_lrconnect_cl_onlycat139" and no segfault if "dsn=shorter". Looks
like the string length is the key.

Maciek

-------------------------------------------- Managed by Request Tracker

On Tue, Oct 03, 2006 at 01:37:21PM +0200, Maciek Sieczka via RT wrote:

hamish_nospam@yahoo.com wrote (Tue, Oct 3 2006 05:47:19):

> Maciek Sieczka via RT wrote:

>> $ v.in.ogr dsn=shorter/

> what if you leave off the trailing "/" in the dsn?

It doesn't change anything. Still a segfault if
"dsn=force_lrconnect_cl_onlycat139" and no segfault if "dsn=shorter". Looks
like the string length is the key.

I just made a test:

GRASS 6.3.cvs (spearfish60):~ > v.out.ogr roads dsn=myroads_12345678901234567890_test.shp olayer=roads
Exporting 825 points/lines...
825 features written

GRASS 6.3.cvs (spearfish60):~ > v.in.ogr myroads_12345678901234567890_test.shp out=myroads
A datum name nad27 (North_American_Datum_1927) was specified without transformation parameters.
WARNING: Non-interactive mode: the GRASS default for nad27 is
         towgs84=-22.000,157.000,176.000.
Projection of input dataset and current location appear to match.
Proceeding with import...
Layer: myroads_12345678901234567890_test
WARNING: Column name changed: 'cat' -> 'cat_'
-----------------------------------------------------
Building topology ...
825 primitives registered
...

This works.

Best is to use a debugger. See here how to do that with 'ddd':
http://grass.gdf-hannover.de/wiki/GRASS_Debugging#Using_DDD_.28gdb_graphical_frontend.29

It is fairly easy to handle.

Markus

Markus Neteler wrote:

Best is to use a debugger. See here how to do that with 'ddd':
http://grass.gdf-hannover.de/wiki/GRASS_Debugging#Using_DDD_.28gdb_graphical_frontend.29

OK, done, but some different way:

$ ulimit -c 3000
$ grass63
$ v.in.ogr dsn=force_lrconnect_cl_onlycat139
output=force_lrconnect_cl_onlycat139_import
layer=force_lrconnect_cl_onlycat139

(segfault)

$ gdb v.in.ogr core

(gdb) bt
#0 0x00010101 in ?? ()
#1 0xb7cb5c2f in OGRSpatialReference::Release ()
   from /usr/local/lib/libgdal.so.1
#2 0xb7cab4e7 in OGRGeometry::~OGRGeometry () from
/usr/local/lib/libgdal.so.1
#3 0xb7ca6810 in OGRCurve::~OGRCurve () from /usr/local/lib/libgdal.so.1
#4 0xb7ca6ad8 in OGRLineString::~OGRLineString ()
   from /usr/local/lib/libgdal.so.1
#5 0xb7caf6ff in OGRFeature::~OGRFeature () from
/usr/local/lib/libgdal.so.1
#6 0xb7caefa5 in OGR_F_Destroy () from /usr/local/lib/libgdal.so.1
#7 0x0804ccfc in main (argc=4, argv=0xbffcb044) at main.c:744
(gdb) q

Any good?

Maciek

On Tue, 2006-10-03 at 13:37 +0200, Maciek Sieczka via RT wrote:

hamish_nospam@yahoo.com wrote (Tue, Oct 3 2006 05:47:19):

> Maciek Sieczka via RT wrote:

>> $ v.in.ogr dsn=shorter/

> what if you leave off the trailing "/" in the dsn?

It doesn't change anything. Still a segfault if
"dsn=force_lrconnect_cl_onlycat139" and no segfault if "dsn=shorter". Looks
like the string length is the key.

Should be fixed in CVS.

--
Brad Douglas <rez touchofmadness com> KB8UYR
Address: 37.493,-121.924 / WGS84 National Map Corps #TNMC-3785