[postgis-devel] ST_MaximumInscribedCircle madness

Bruce Rindahl bruce.rindahl at gmail.com
Thu Apr 20 15:10:19 PDT 2023


Confirming behavior on:
POSTGIS="3.2.1 3.2.1" [EXTENSION] PGSQL="140" GEOS="3.10.2-CAPI-1.16.0"
PROJ="7.2.1" LIBXML="2.9.9" LIBJSON="0.12" LIBPROTOBUF="1.2.1" WAGYU="0.5.0
(Internal)"

rebooting now...

On Thu, Apr 20, 2023 at 3:50 PM Regina Obe <lr at pcorp.us> wrote:

> We did close an infinite loop issue on ST_MaximumInscribedCircle recently,
> but given the latest GEOS 3.11.2 seems to be hanging on this (I also tested
> my few months old 3.12 branch) and this is not with infinite coordinates, I
> suppose it’s yet another issue of
>
>
>
> https://github.com/libgeos/geos/pull/843
>
>
>
> https://github.com/libgeos/geos/issues/821
>
>
>
>
>
> I think it’s worth a ticket both on GEOS and PostGIS.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *From:* postgis-devel [mailto:postgis-devel-bounces at lists.osgeo.org] *On
> Behalf Of *Rémi Cura
> *Sent:* Thursday, April 20, 2023 5:38 PM
> *To:* PostGIS Development Discussion <postgis-devel at lists.osgeo.org>
> *Subject:* [postgis-devel] ST_MaximumInscribedCircle madness
>
>
>
> Hello dear Postgis devs!
>
> I have a strange case to submit to you.
>
> In a nutshell, trying to compute
>
> ```SQL
> SELECT ST_MaximumInscribedCircle( 'POLYGON ((59.3 100.00000000000001, 99.7
> 100.00000000000001, 99.7 100, 59.3 100, 59.3 100.00000000000001))') ;
> ```
>
> causes it to run for many minutes until it eventually errors.
>
> Worst, running this kind of computing on 12M geoms in parallel x6 created
> a postgres **segfault** and crashed my server (16 cores, 64GB).
>
> (many more geoms are making this function unhappy).
>
>
> /!\ Once this query starts, it can't be stopped by
> `pg_cancel_backend(pid)` or even `pg_terminate_backend(pid)`
>
> --> This is pretty dangerous in my opinion.
>
>
>
>
>
> The geometry is simple, it is a rectangle.
>
> I obtained it through other geometry operations
>
> It must be some kind of precision issue, I'm wondering if there is some
> kind of infinite loop going on or something.
>
>
>
> My full code is something like that:
>
> ```SQL
> SELECT env, diff, ST_MaximumInscribedCircle(diff)
> FROM CAST ('some_polygon'as text ) as g
>     , ST_Envelope(g) as env
>     , ST_MakeEnvelope(0,0,100,100) as bound
>     , ST_Difference(env, bound) as diff;
> ```
>
>
>
> Not creating a bug ticket as I don't know if I'm simply abusing the
> function / using it in a way it should not.
>
>
>
>
>
> POSTGIS="3.1.7 aafe1ff" [EXTENSION] PGSQL="140" GEOS="3.9.1-CAPI-1.14.2"
> PROJ="8.0.1" GDAL="GDAL 3.4.3, released 2022/04/22" LIBXML="2.9.1"
> LIBJSON="0.15" LIBPROTOBUF="1.3.2" WAGYU="0.5.0 (Internal)" RASTER
>
>
>
> PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1
> 20180712 (Red Hat 7.3.1-12), 64-bit
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-devel/attachments/20230420/d81b57f8/attachment-0001.htm>


More information about the postgis-devel mailing list