Re: Crash in GEOS iterating through the layers in a PBF-file loaded with the MVT driver in GDAL 3.12.4#2

Daniel Baston via gdal-dev <[email protected]> Tue, 9 Jun 2026 06:11:26 -0400
Newsgroups gmane.comp.gis.gdal.devel
Message-ID <CA+K_q_r+t2DCD4Lx6MsJ5X_3j81kSvzJSGbZkssPoBQUeXhu1A@mail.gmail.com>
--===============2522264317153036481==
Content-Type: multipart/alternative; boundary="000000000000524ffe0653cf5a03"

--000000000000524ffe0653cf5a03
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hello Roman,

Unfortunately, I haven't been able to reproduce the problem either locally
or on the GDAL CI builders. As the stack trace indicates a failure in the
GEOS library, I would suggest updating to the latest version of that
library and posting your issue to the bug tracker of that project [1] if
the problem persists.

Dan

[1] https://github.com/libgeos/geos/issues



On Mon, Jun 8, 2026 at 8:21=E2=80=AFAM Daniel Baston <[email protected]> wr=
ote:

> Hello Roman,
>
> Could you please share your input file, either in a GitHub issue or to me
> by email? I don't recall a recent bug like this, so you may have found a
> new issue.
>
> Thanks,
> Dan
>
> On Mon, Jun 8, 2026 at 7:17=E2=80=AFAM Roman Pl=C3=B6hn via gdal-dev <
> [email protected]> wrote:
>
>> Hello,
>>
>> in our company we since many years use GDAL (for building C++ software
>> for Windows only) from VCPKG.
>>
>> The GDAL version used in the most recent VCPKG is 3.12.4#2, in which I
>> encounter a reproducable crash in RELEASE builds when opening a file
>> downloaded from a Map-Tiles server, as soon as I iterate through its lay=
ers.
>>
>> My main question about this problem is if this problem is already fixed
>> in a more recent GDAL version ... if so I could send the VCPKG-maintaine=
rs
>> a feature request to ask them to update the GDAL package in there to a
>> version, where it doesn't crash anymore.
>>
>> Below is a description of the problem. If needed I can send the file in
>> question.
>>
>> For us this is a serioes issue, because it hinders us from using a recen=
t
>> version of VCPKG at all (we even use the dependend lib mapnik, which nee=
ds
>> GDAL).
>>
>> I really hope someone can help me ...
>>
>> Best regards,
>>
>> have a nice day,
>>
>> Roman
>>
>>
>>
>>
>> The function I use to reproduce the crash is quite simpel:
>>
>> auto GetLayerFeaureFIDs( OGRLayer& layer ) -> std::vector< GIntBig >
>> {
>> std::cout << "Processing layer '" << layer.GetName() << "'...\n";
>>
>> std::vector< GIntBig > fids;
>>
>> OGRFeature* feature =3D layer.GetNextFeature();
>>
>> for ( ; feature !=3D nullptr; feature =3D layer.GetNextFeature() )
>> {
>> if ( nullptr =3D=3D feature )
>> {
>> std::cout << "Got a null feature from layer '" << layer.GetName() << "'.
>> Skipping it.\n";
>> continue;
>> }
>>
>> fids.push_back( feature->GetFID() );
>> }
>>
>> return fids;
>> }
>>
>> It doesn't happen for each layer, i.e. in my DEBUG build, where no crash
>> happens, an error is reported about a thrown TopologyException:
>>
>> Debug: GDAL: GDALOpen(C:\Projects\TestGdal\x64\Debug\43.pbf,
>> this=3D000001D7A8789410) succeeds as MVT. (code: 0)
>> Processing layer 'boundary'...
>> Processing layer 'landcover'...
>> Failure: TopologyException: side location conflict at 3934.7142857142858
>> 3859.8571428571427. This can occur if the input geometry is invalid. (co=
de:
>> 1)
>> Processing layer 'landuse'...
>> Failure: TopologyException: side location conflict at 494.19230769230768
>> 2796.5769230769229. This can occur if the input geometry is invalid. (co=
de:
>> 1)
>> ...
>>
>> The crash is a Access Violation, the top of the call-stack looks like
>> this:
>>
>>   [Inline Frame] geos.dll!geos::geom::CoordinateXY::equals2D(const
>> geos::geom::CoordinateXY &) Line 106 C++
>>   [Inline Frame]
>> geos.dll!geos::index::kdtree::KdTree::queryNodePoint(geos::index::kdtree=
::KdNode
>> * currentNode, const geos::geom::Coordinate & odd, bool) Line 235 C++
>>   geos.dll!geos::index::kdtree::KdTree::query(const
>> geos::geom::Coordinate & queryPt) Line 289 C++
>>   [Inline Frame]
>> geos.dll!geos::noding::snapround::HotPixelIndex::find(const
>> geos::geom::Coordinate &) Line 146 C++
>>   geos.dll!geos::noding::snapround::HotPixelIndex::addRounded(const
>> geos::geom::CoordinateXYZM & pRound) Line 48 C++
>>   [Inline Frame]
>> geos.dll!geos::noding::snapround::HotPixelIndex::add(const
>> geos::geom::CoordinateXYZM &) Line 90 C++
>>   [Inline Frame]
>> geos.dll!geos::noding::snapround::HotPixelIndex::addNodes::__l2::<lambda=
_8c47a75e4bac7a256ab75080e3e5d5f0>::operator()(const
>> geos::geom::CoordinateXYZM &) Line 127 C++
>>
>> geos.dll!geos::geom::CoordinateSequence::forEach<<lambda_8c47a75e4bac7a2=
56ab75080e3e5d5f0>>(geos::noding::snapround::HotPixelIndex::addNodes::__l2:=
:<lambda_8c47a75e4bac7a256ab75080e3e5d5f0>
>> && fun) Line 701 C++
>>   geos.dll!geos::noding::snapround::HotPixelIndex::addNodes(const
>> geos::geom::CoordinateSequence * pts) Line 130 C++
>>
>> geos.dll!geos::noding::snapround::SnapRoundingNoder::addIntersectionPixe=
ls(std::vector<geos::noding::SegmentString
>> *,std::allocator<geos::noding::SegmentString *>> & segStrings) Line 85 C=
++
>>
>> geos.dll!geos::noding::snapround::SnapRoundingNoder::snapRound(std::vect=
or<geos::noding::SegmentString
>> *,std::allocator<geos::noding::SegmentString *>> & inputSegStrings,
>> std::vector<geos::noding::SegmentString
>> *,std::allocator<geos::noding::SegmentString *>> & resultNodedSegments)
>> Line 70 C++
>>
>> geos.dll!geos::operation::overlayng::EdgeNodingBuilder::node(std::vector=
<geos::noding::SegmentString
>> *,std::allocator<geos::noding::SegmentString *>> * segStrings) Line 122 =
C++
>>   geos.dll!geos::operation::overlayng::EdgeNodingBuilder::build(const
>> geos::geom::Geometry * geom0, const geos::geom::Geometry * geom1) Line 1=
04
>> C++
>>   geos.dll!geos::operation::overlayng::OverlayNG::computeEdgeOverlay()
>> Line 227 C++
>>   geos.dll!geos::operation::overlayng::OverlayNG::getResult() Line 195 C=
++
>>   geos.dll!geos::operation::overlayng::OverlayNG::overlay(const
>> geos::geom::Geometry * geom0, const geos::geom::Geometry * geom1, int
>> opCode, const geos::geom::PrecisionModel * pm) Line 100 C++
>>   geos.dll!geos::operation::overlayng::OverlayNGRobust::overlaySR(const
>> geos::geom::Geometry * geom0, const geos::geom::Geometry * geom1, int
>> opCode) Line 295 C++
>>   geos.dll!geos::operation::overlayng::OverlayNGRobust::Overlay(const
>> geos::geom::Geometry * geom0, const geos::geom::Geometry * geom1, int
>> opCode) Line 147 C++
>>   geos.dll!geos::geom::HeuristicOverlay(const geos::geom::Geometry * g0,
>> const geos::geom::Geometry * g1, int opCode) Line 194 C++
>>   geos.dll!geos::geom::Geometry::intersection(const geos::geom::Geometry
>> * other) Line 616 C++
>>   [Inline Frame]
>> geos_c.dll!GEOSIntersection_r::__l2::<lambda_3988e1633fcf92bee6886158a69=
50fe9>::operator()()
>> Line 1322 C++
>>   geos_c.dll!execute<`anonymous
>> namespace'::InterruptManager,<lambda_3988e1633fcf92bee6886158a6950fe9>,0=
>(GEOSContextHandle_HS
>> * extHandle,
>> GEOSIntersection_r::__l2::<lambda_3988e1633fcf92bee6886158a6950fe9> && f=
)
>> Line 521 C++
>>   geos_c.dll!GEOSIntersection_r(GEOSContextHandle_HS * extHandle, const
>> geos::geom::Geometry * g1, const geos::geom::Geometry * g2) Line 1326 C+=
+
>>   gdal.dll!BuildGeometryFromTwoGeoms(const OGRGeometry * poSelf, const
>> OGRGeometry * poOtherGeom, GEOSGeom_t *(*)(GEOSContextHandle_HS *, const
>> GEOSGeom_t *, const GEOSGeom_t *) pfnGEOSFunction_r) Line 3814 C++
>>   gdal.dll!OGRMVTLayer::GetNextRawFeature() Line 1381 C++
>>   [Inline Frame]
>> gdal.dll!OGRGetNextFeatureThroughRaw<OGRMVTLayerBase>::GetNextFeature()
>> Line 513 C++
>>   gdal.dll!OGRMVTLayerBase::GetNextFeature() Line 144 C++
>> _______________________________________________
>> gdal-dev mailing list
>> [email protected]
>> https://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>

--000000000000524ffe0653cf5a03
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello Roman,<div><br></div><div>Unfortunately, I haven&#39=
;t been able to reproduce the problem either locally or on the GDAL CI buil=
ders. As the stack trace indicates a failure in the GEOS library, I would s=
uggest updating to the latest version of that library and posting your issu=
e to the bug tracker of that project [1] if the problem persists.</div><div=
><br></div><div>Dan</div><div><br></div><div>[1]=C2=A0<a href=3D"https://gi=
thub.com/libgeos/geos/issues">https://github.com/libgeos/geos/issues</a></d=
iv><div><br></div><div><br></div></div><br><div class=3D"gmail_quote gmail_=
quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Mon, Jun 8, 2026 =
at 8:21=E2=80=AFAM Daniel Baston &lt;<a href=3D"mailto:[email protected]">d=
[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:s=
olid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">=
Hello Roman,<div><br></div><div>Could you please share your input file, eit=
her in a GitHub issue or to me by email? I don&#39;t recall a recent bug li=
ke this, so you may have found a new issue.</div><div><br></div><div>Thanks=
,</div><div>Dan</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"gmail_attr">On Mon, Jun 8, 2026 at 7:17=E2=80=AFAM Roman Pl=C3=B6h=
n via gdal-dev &lt;<a href=3D"mailto:[email protected]" target=3D"_b=
lank">[email protected]</a>&gt; wrote:<br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;borde=
r-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><di=
v>




<div dir=3D"ltr">
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hello,</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
in our company we since many years use GDAL (for building C++ software for =
Windows only) from VCPKG.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
The GDAL version used in the most recent VCPKG is 3.12.4#2, in which I enco=
unter a reproducable crash in RELEASE builds when opening a file downloaded=
 from a Map-Tiles server, as soon as I iterate through its layers.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
My main question about this problem is if this problem is already fixed in =
a more recent GDAL version ... if so I could send the VCPKG-maintainers a f=
eature request to ask them to update the GDAL package in there to a version=
, where it doesn&#39;t crash anymore.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Below is a description of the problem. If needed I can send the file in que=
stion.</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
For us this is a serioes issue, because it hinders us from using a recent v=
ersion of VCPKG at all (we even use the dependend lib mapnik, which needs G=
DAL).</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I really hope someone can help me ...</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Best regards,</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
have a nice day,</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Roman</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
The function I use to reproduce the crash is quite simpel:</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
auto GetLayerFeaureFIDs( OGRLayer&amp; layer ) -&gt; std::vector&lt; GIntBi=
g &gt;</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
{</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82std::cout &lt;&lt; &q=
uot;Processing layer &#39;&quot; &lt;&lt; layer.GetName() &lt;&lt; &quot;&#=
39;...\n&quot;;<br>
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82std::vector&lt; GIntB=
ig &gt; fids;</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82OGRFeature* feature =
=3D layer.GetNextFeature();</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82for ( ; feature !=3D =
nullptr; feature =3D layer.GetNextFeature() )</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82{</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82=E2=80=82=E2=80=82=E2=80=82if ( nullptr =3D=3D feature )</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82=E2=80=82=E2=80=82=E2=80=82{</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=
=82=E2=80=82std::cout &lt;&lt; &quot;Got a null feature from layer &#39;&qu=
ot; &lt;&lt; layer.GetName() &lt;&lt; &quot;&#39;. Skipping it.\n&quot;;</d=
iv>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=
=82=E2=80=82continue;</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82=E2=80=82=E2=80=82=E2=80=82}</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82=E2=80=82=E2=80=82=E2=80=82fids.push_back( feature-&gt;GetFID() );</d=
iv>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82}</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82return fids;</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
}</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
It doesn&#39;t happen for each layer, i.e. in my DEBUG build, where no cras=
h happens, an error is reported about a thrown TopologyException:</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82Debug: GDAL: GDALOpen(C:\Projects\TestG=
dal\x64\Debug\43.pbf, this=3D000001D7A8789410) succeeds as MVT. (code: 0)</=
div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82Processing layer &#39;boundary&#39;...<=
/div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82Processing layer &#39;landcover&#39;...=
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82Failure: TopologyException: side locati=
on conflict at 3934.7142857142858 3859.8571428571427. This can occur if the=
 input geometry is invalid. (code: 1)</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82Processing layer &#39;landuse&#39;...</=
div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82Failure: TopologyException: side locati=
on conflict at 494.19230769230768 2796.5769230769229. This can occur if the=
 input geometry is invalid. (code: 1)</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=E2=80=82=E2=80=82=E2=80=82=E2=80=82...</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
The crash is a Access Violation, the top of the call-stack looks like this:=
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82[Inline Frame] geos.dll!=
geos::geom::CoordinateXY::equals2D(const geos::geom::CoordinateXY &amp;) Li=
ne 106=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82[Inline Frame] geos.dll!=
geos::index::kdtree::KdTree::queryNodePoint(geos::index::kdtree::KdNode * c=
urrentNode, const geos::geom::Coordinate &amp; odd, bool) Line 235=E2=80=82=
C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::index::kd=
tree::KdTree::query(const geos::geom::Coordinate &amp; queryPt) Line 289=E2=
=80=82=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82[Inline Frame] geos.dll!=
geos::noding::snapround::HotPixelIndex::find(const geos::geom::Coordinate &=
amp;) Line 146=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::noding::s=
napround::HotPixelIndex::addRounded(const geos::geom::CoordinateXYZM &amp; =
pRound) Line 48=E2=80=82=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82[Inline Frame] geos.dll!=
geos::noding::snapround::HotPixelIndex::add(const geos::geom::CoordinateXYZ=
M &amp;) Line 90=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82[Inline Frame] geos.dll!=
geos::noding::snapround::HotPixelIndex::addNodes::__l2::&lt;lambda_8c47a75e=
4bac7a256ab75080e3e5d5f0&gt;::operator()(const geos::geom::CoordinateXYZM &=
amp;) Line 127=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::geom::Coo=
rdinateSequence::forEach&lt;&lt;lambda_8c47a75e4bac7a256ab75080e3e5d5f0&gt;=
&gt;(geos::noding::snapround::HotPixelIndex::addNodes::__l2::&lt;lambda_8c4=
7a75e4bac7a256ab75080e3e5d5f0&gt; &amp;&amp; fun) Line 701=E2=80=82=E2=80=
=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::noding::s=
napround::HotPixelIndex::addNodes(const geos::geom::CoordinateSequence * pt=
s) Line 130=E2=80=82=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::noding::s=
napround::SnapRoundingNoder::addIntersectionPixels(std::vector&lt;geos::nod=
ing::SegmentString *,std::allocator&lt;geos::noding::SegmentString *&gt;&gt=
; &amp; segStrings) Line 85=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::noding::s=
napround::SnapRoundingNoder::snapRound(std::vector&lt;geos::noding::Segment=
String *,std::allocator&lt;geos::noding::SegmentString *&gt;&gt; &amp; inpu=
tSegStrings, std::vector&lt;geos::noding::SegmentString *,std::allocator&lt=
;geos::noding::SegmentString
 *&gt;&gt; &amp; resultNodedSegments) Line 70=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::operation=
::overlayng::EdgeNodingBuilder::node(std::vector&lt;geos::noding::SegmentSt=
ring *,std::allocator&lt;geos::noding::SegmentString *&gt;&gt; * segStrings=
) Line 122=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::operation=
::overlayng::EdgeNodingBuilder::build(const geos::geom::Geometry * geom0, c=
onst geos::geom::Geometry * geom1) Line 104=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::operation=
::overlayng::OverlayNG::computeEdgeOverlay() Line 227=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::operation=
::overlayng::OverlayNG::getResult() Line 195=E2=80=82=E2=80=82=E2=80=82=E2=
=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::operation=
::overlayng::OverlayNG::overlay(const geos::geom::Geometry * geom0, const g=
eos::geom::Geometry * geom1, int opCode, const geos::geom::PrecisionModel *=
 pm) Line 100=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::operation=
::overlayng::OverlayNGRobust::overlaySR(const geos::geom::Geometry * geom0,=
 const geos::geom::Geometry * geom1, int opCode) Line 295=E2=80=82=E2=80=82=
=E2=80=82=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::operation=
::overlayng::OverlayNGRobust::Overlay(const geos::geom::Geometry * geom0, c=
onst geos::geom::Geometry * geom1, int opCode) Line 147=E2=80=82=E2=80=82C+=
+</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::geom::Heu=
risticOverlay(const geos::geom::Geometry * g0, const geos::geom::Geometry *=
 g1, int opCode) Line 194=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos.dll!geos::geom::Geo=
metry::intersection(const geos::geom::Geometry * other) Line 616=E2=80=82=
=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82[Inline Frame] geos_c.dl=
l!GEOSIntersection_r::__l2::&lt;lambda_3988e1633fcf92bee6886158a6950fe9&gt;=
::operator()() Line 1322=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos_c.dll!execute&lt;`a=
nonymous namespace&#39;::InterruptManager,&lt;lambda_3988e1633fcf92bee68861=
58a6950fe9&gt;,0&gt;(GEOSContextHandle_HS * extHandle, GEOSIntersection_r::=
__l2::&lt;lambda_3988e1633fcf92bee6886158a6950fe9&gt; &amp;&amp; f) Line 52=
1=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82geos_c.dll!GEOSIntersect=
ion_r(GEOSContextHandle_HS * extHandle, const geos::geom::Geometry * g1, co=
nst geos::geom::Geometry * g2) Line 1326=E2=80=82=E2=80=82=E2=80=82=E2=80=
=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82gdal.dll!BuildGeometryFr=
omTwoGeoms(const OGRGeometry * poSelf, const OGRGeometry * poOtherGeom, GEO=
SGeom_t *(*)(GEOSContextHandle_HS *, const GEOSGeom_t *, const GEOSGeom_t *=
) pfnGEOSFunction_r) Line 3814=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82=
=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82gdal.dll!OGRMVTLayer::Ge=
tNextRawFeature() Line 1381=E2=80=82=E2=80=82=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82[Inline Frame] gdal.dll!=
OGRGetNextFeatureThroughRaw&lt;OGRMVTLayerBase&gt;::GetNextFeature() Line 5=
13=E2=80=82C++</div>
<div style=3D"font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Cali=
bri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
=C2=A0=E2=80=82=E2=80=82=E2=80=82=E2=80=82=E2=80=82gdal.dll!OGRMVTLayerBase=
::GetNextFeature() Line 144=E2=80=82=E2=80=82=E2=80=82C++</div>
</div>

_______________________________________________<br>
gdal-dev mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blank">gdal-dev@list=
s.osgeo.org</a><br>
<a href=3D"https://lists.osgeo.org/mailman/listinfo/gdal-dev" rel=3D"norefe=
rrer" target=3D"_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</=
a><br>
</div></blockquote></div>
</blockquote></div>

--000000000000524ffe0653cf5a03--

--===============2522264317153036481==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev

--===============2522264317153036481==--