Opened 16 years ago
Closed 15 years ago
#167 closed defect (fixed)
shp2pgsql double frees on medford buildings.shp
Reported by: | pramsey | Owned by: | mcayland |
---|---|---|---|
Priority: | high | Milestone: | PostGIS 1.4.0 |
Component: | postgis | Version: | 1.4 |
Keywords: | Cc: |
Description
Run on the medford buildings.shp file and see the double free. Also seems to run much slower than 1.3 version.
Attachments (1)
Change History (16)
comment:1 by , 16 years ago
comment:4 by , 16 years ago
Again this is the same as #168, although it still brings up the question of what to do about validation.
Paul, I'm leaving this open in case you wish to comment about any of the speed issues.
ATB,
Mark.
comment:5 by , 15 years ago
Paul,
Do you have any further comments on the relative speeds or shall we just close the ticket?
ATB,
Mark.
comment:6 by , 15 years ago
It actually still double-frees, at r4153. I will see if I can make a terse example. The difficulty of working around these issues (I am going to load the file into 1.3, find the bad row, export that, then attach it) speaks to my worries about doing validity checking on load, even relatively trivial validity checking (closed rings, etc). Because fixing bad things requires a tool, and PostGIS is the tool that, presumably, a PostGIS user would like to use.
comment:7 by , 15 years ago
Hmmm works fine for me:
pg83@zeno:~/src/postgis-svn/testdata$ shp2pgsql buildings_oops test > foo Shapefile type: PolygonZ Postgis type: MULTIPOLYGON[4] ERROR: geometry requires more points
Did you definitely rebuild liblwgeom since the fix went in?
ATB,
Mark.
comment:8 by , 15 years ago
I get an error too Mark and just svn uped/autogen/configure/compile/install
I'm testing on 8.2 on OpenSUSE 10.3 If I do this: postgis-1.4SVN/loader/shp2pgsql buildings_oops public.buildings | psql -h localhost -d testpostgis -U postgres
I get this error
addgeometrycolumn
public.buildings.the_geom SRID:-1 TYPE:MULTIPOLYGON DIMS:4
(1 row)
ERROR: syntax error at end of input LINE 1: …S-BUILDING','1384.22300000','0.00000000000','0.00000000000',
If I do this postgis-1.4SVN/loader/shp2pgsql buildings_oops public.buildings > buildings.sql
I get Shapefile type: PolygonZ Postgis type: MULTIPOLYGON[4] * glibc detected * postgis-1.4SVN/loader/shp2pgsql: double free or corruption (fasttop): 0x08079f40 * ======= Backtrace: ========= /lib/libc.so.6[0xb7eb94b6] /lib/libc.so.6(cfree+0x89)[0xb7ebb179] postgis-1.4SVN/loader/shp2pgsql(default_freeor+0x1d)[0x805e2fd] postgis-1.4SVN/loader/shp2pgsql(lwfree+0x20)[0x805e100] postgis-1.4SVN/loader/shp2pgsql[0x805e9f0] postgis-1.4SVN/loader/shp2pgsql(output_wkb_polygon_collection+0x27)[0x805ea97] postgis-1.4SVN/loader/shp2pgsql[0x805eb7c] postgis-1.4SVN/loader/shp2pgsql(output_wkb+0x145)[0x805ecd5] postgis-1.4SVN/loader/shp2pgsql[0x805eb7c] postgis-1.4SVN/loader/shp2pgsql(output_wkb+0x145)[0x805ecd5] postgis-1.4SVN/loader/shp2pgsql[0x805ef41] postgis-1.4SVN/loader/shp2pgsql[0x805771f] postgis-1.4SVN/loader/shp2pgsql[0x80529e5] postgis-1.4SVN/loader/shp2pgsql[0x8053135] postgis-1.4SVN/loader/shp2pgsql[0x8053239] /lib/libc.so.6(libc_start_main+0xe0)[0xb7e68fe0] postgis-1.4SVN/loader/shp2pgsql[0x804a371] ======= Memory map: ======== 08048000-08077000 r-xp 00000000 08:01 1591187 /projects/postgis-1.4SVN/loader/shp2pgsql 08077000-08078000 r—p 0002f000 08:01 1591187 /projects/postgis-1.4SVN/loader/shp2pgsql 08078000-08079000 rw-p 00030000 08:01 1591187 /projects/postgis-1.4SVN/loader/shp2pgsql 08079000-0809a000 rw-p 08079000 00:00 0 [heap] b7d00000-b7d21000 rw-p b7d00000 00:00 0 b7d21000-b7e00000 —-p b7d21000 00:00 0 b7e2d000-b7e2e000 rw-p b7e2d000 00:00 0 b7e2e000-b7e51000 r-xp 00000000 08:01 1556613 /lib/libm-2.6.1.so b7e51000-b7e53000 rw-p 00022000 08:01 1556613 /lib/libm-2.6.1.so b7e53000-b7f80000 r-xp 00000000 08:01 1557842 /lib/libc-2.6.1.so b7f80000-b7f81000 r—p 0012c000 08:01 1557842 /lib/libc-2.6.1.so b7f81000-b7f83000 rw-p 0012d000 08:01 1557842 /lib/libc-2.6.1.so b7f83000-b7f87000 rw-p b7f83000 00:00 0 b7f87000-b7f91000 r-xp 00000000 08:01 1556721 /lib/libgcc_s.so.1 b7f91000-b7f93000 rw-p 00009000 08:01 1556721 /lib/libgcc_s.so.1 b7f93000-b7f97000 rw-p b7f93000 00:00 0 b7f97000-b7fb1000 r-xp 00000000 08:01 1556546 /lib/ld-2.6.1.so b7fb1000-b7fb3000 rw-p 0001a000 08:01 1556546 /lib/ld-2.6.1.so bf86e000-bf884000 rw-p bf86e000 00:00 0 [stack] ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso] Aborted
comment:9 by , 15 years ago
This is interesting — If I do this postgis-1.4SVN/loader/shp2pgsql -S buildings_oops public.buildings > buildings.sql I get: Shapefile type: PolygonZ Postgis type: POLYGON[4] ERROR: geometry requires more points
comment:10 by , 15 years ago
Hmmm. Still can't reproduce here. I did notice that you didn't do a "make clean" before configure to ensure that liblwgeom gets updated and built into postgis-1.4.so - can you try this just to be 100% certain?
ATB,
Mark.
comment:11 by , 15 years ago
Just did a make clean, remake, install and still aborts with the same error.
I guess I can try and wipe out my whole directory and redownload to be sure. I'll do that next.
comment:12 by , 15 years ago
No, the make clean monster hasn't bitten me again (another issue that deserves a ticket, really) after a clean build the problem still recurs. I'm on OS/X 10.5 should be 32 bit.
Heron-2:postgis-svn pramsey$ ./loader/shp2pgsql ~/Downloads/buildings_oops/buildings_oops.shp foo Shapefile type: PolygonZ Postgis type: MULTIPOLYGON[4] SET STANDARD_CONFORMING_STRINGS TO ON; BEGIN; CREATE TABLE "foo" (gid serial PRIMARY KEY, "layer" varchar(254), "elevation" numeric, "shape_leng" numeric, "shape_area" numeric); SELECT AddGeometryColumn('','foo','the_geom','-1','MULTIPOLYGON',4); shp2pgsql(27700) malloc: *** error for object 0x1009c0: double free *** set a breakpoint in malloc_error_break to debug shp2pgsql(27700) malloc: *** error for object 0x100ae0: double free *** set a breakpoint in malloc_error_break to debug ERROR: geometry requires more points INSERT INTO "foo" ("layer","elevation","shape_leng","shape_area",the_geom) VALUES ('S-BUILDING','1384.22300000','0.00000000000','0.00000000000', Heron-2:postgis-svn pramsey$
comment:13 by , 15 years ago
Owner: | changed from | to
---|
Again, the validity checking is getting in the way of loading data.