[postgis-users] Server Crash on Invalid 3d Polygon

Paul Ramsey pramsey at opengeo.org
Fri Nov 20 11:36:35 PST 2009


Love to see a bug with such a succinct test case. It crashes for me
too, I've ticked it and will be looking now.

http://trac.osgeo.org/postgis/ticket/316

P

On Fri, Nov 20, 2009 at 11:31 AM, Brad Hecox <brad at pauds.com> wrote:
> I am having a problem were I get a server crash any time I try to validate or generate a geometry on an invalid 3D polygon.  I have a set of polygons in EWKT format that I need to validate and convert to geometries if valid.  In most cases the st_isvalid function returns a true or false, however of the polygon is 3D and is invalid rather than returning a false, the system crashes.  I have been able to reproduce this on Solaris x86, Solaris SPARC and Max OSX.  We are running PostgreSQL 8.4.1 with PostGIS 1.4.0.  The following is the pstack from the core dump:
>
> ore 'core' of 4774:    /opt/postgres/pgserver/8.4.1/bin/postgres
>  fef68610 strncat  (4d8e38, 0, 40923bff, 28, 0, 0) + 20
>  fedd3360 pg_parser_errhint (ffbfd9e8, 4d8e38, 7, fee02a08, fee026d0, fee34224) + 24
>  fedd9c74 LWGEOM_in (ffbfda70, 5167bc, d3280f32, 406000, 0, 3) + 70
>  002a0ef4 InputFunctionCall (ffbfdce8, 4d8e38, 4010, ffffffff, 516688, 4010) + 58
>  002a1120 OidInputFunctionCall (4012, 4d8e38, 4010, ffffffff, 0, 445000) + 20
>  000e43e8 coerce_type (4d9150, 4d90b0, 2c1, 4010, ffffffff, 0) + 3d4
>  000da760 make_fn_arguments (4d8d60, 4d90d8, ffbfdef0, 4d9118, 0, 0) + 5c
>  000db534 ParseFuncOrColumn (4d8d60, 4d8e20, 4d90e8, 2, 0, 0) + 3d8
>  000d7d00 transformExpr (0, 4d8f00, 4d9020, 31, 1518, 4da538) + 150
>  000e6cb8 transformTargetEntry (4d8d60, 4d8f00, 0, 0, 0, 2b65c4) + 80
>  000e6d0c transformTargetList (0, 4d8f50, 398ea0, fee62a00, 1e70, 0) + 44
>  000bc6a4 transformStmt (4d9028, 4d8f78, 0, 11ab4, 529f2c, 529f2c) + e0
>  000bed78 parse_analyze (4d8f78, 4d8550, 0, 0, 41e400, 529f00) + 20
>  001e8664 pg_analyze_and_rewrite (4d8f78, 4d8550, 0, 0, 4627d0, 462748) + 24
>  001ea244 PostgresMain (2, 4627d0, 4d9000, 0, 0, 1000000) + 14bc
>  001bc2f0 ServerLoop (47d0c8, ffbff278, 38e800, 4b06afa6, 41d400, 3ccc00) + 9e8
>  001be9ec PostmasterMain (0, 45c180, 3cd800, 461698, 45a400, 3ccc00) + 11c0
>  00164550 main     (1, 45c180, ffbff8fc, 459bac, fee60100, fee60140) + 39c
>  0004ace4 _start   (0, 0, 0, 0, 0, 0) + 5c
>
> I am able to reproduce the crash consistently with a query such as the following:
>
> select st_isvalid('POLYGON ((-97.78351581 36.37358796 1167.172,-97.78303556 36.37319923 1167.172,-98.88351581 38.37358796 1167.172))');
>
> Any help would be greatly appreciated!!
>
> Brad
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>



More information about the postgis-users mailing list