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]> Fri, 19 Jun 2026 10:04:48 -0400
Newsgroups gmane.comp.gis.gdal.devel
Message-ID <CA+K_q_reExACcWdWp4KXSCqCTzyBESbYueBdG_LLHaLucTTF4w@mail.gmail.com>
--===============2439153411228935285==
Content-Type: multipart/alternative; boundary="0000000000004c06ee06549bc782"

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

Hi Roman,

We ended up getting other reports of this problem, which appears to be
associated with recent releases of the MSVC compiler. It has been fixed in
GEOS main via https://github.com/libgeos/geos/pull/1453. That fix should
show up in 3.14.2.

Thanks,
Dan

On Tue, Jun 9, 2026 at 6:11=E2=80=AFAM Daniel Baston <[email protected]> wr=
ote:

> Hello Roman,
>
> Unfortunately, I haven't been able to reproduce the problem either locall=
y
> 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]> =
wrote:
>
>> Hello Roman,
>>
>> Could you please share your input file, either in a GitHub issue or to m=
e
>> 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 la=
yers.
>>>
>>> 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-maintain=
ers
>>> 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
>>> recent version of VCPKG at all (we even use the dependend lib mapnik, w=
hich
>>> needs 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 cras=
h
>>> 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.714285714285=
8
>>> 3859.8571428571427. This can occur if the input geometry is invalid. (c=
ode:
>>> 1)
>>> Processing layer 'landuse'...
>>> Failure: TopologyException: side location conflict at 494.1923076923076=
8
>>> 2796.5769230769229. This can occur if the input geometry is invalid. (c=
ode:
>>> 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::kdtre=
e::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::<lambd=
a_8c47a75e4bac7a256ab75080e3e5d5f0>::operator()(const
>>> geos::geom::CoordinateXYZM &) Line 127 C++
>>>
>>> geos.dll!geos::geom::CoordinateSequence::forEach<<lambda_8c47a75e4bac7a=
256ab75080e3e5d5f0>>(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::addIntersectionPix=
els(std::vector<geos::noding::SegmentString
>>> *,std::allocator<geos::noding::SegmentString *>> & segStrings) Line 85 =
C++
>>>
>>> geos.dll!geos::noding::snapround::SnapRoundingNoder::snapRound(std::vec=
tor<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::vecto=
r<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 =
104
>>> 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::Geometr=
y
>>> * other) Line 616 C++
>>>   [Inline Frame]
>>> geos_c.dll!GEOSIntersection_r::__l2::<lambda_3988e1633fcf92bee6886158a6=
950fe9>::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 *, cons=
t
>>> 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
>>>
>>

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

<div dir=3D"ltr">Hi Roman,<div><br></div><div>We ended up getting other rep=
orts of this problem, which appears to be associated with recent releases o=
f the MSVC compiler. It has been fixed in GEOS main via=C2=A0<a href=3D"htt=
ps://github.com/libgeos/geos/pull/1453">https://github.com/libgeos/geos/pul=
l/1453</a>. That fix should show up in 3.14.2.</div><div><br></div><div>Tha=
nks,</div><div>Dan</div></div><br><div class=3D"gmail_quote gmail_quote_con=
tainer"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jun 9, 2026 at 6:11=
=E2=80=AFAM Daniel Baston &lt;<a href=3D"mailto:[email protected]">dbaston@=
gmail.com</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:solid;=
border-left-color:rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Hello=
 Roman,<div><br></div><div>Unfortunately, I haven&#39;t been able to reprod=
uce the problem either locally or on the GDAL CI builders. As the stack tra=
ce 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 o=
f that project [1] if the problem persists.</div><div><br></div><div>Dan</d=
iv><div><br></div><div>[1]=C2=A0<a href=3D"https://github.com/libgeos/geos/=
issues" target=3D"_blank">https://github.com/libgeos/geos/issues</a></div><=
div><br></div><div><br></div></div><br><div class=3D"gmail_quote"><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]" target=3D"_blank">dbaston@=
gmail.com</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:solid;=
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, either i=
n a GitHub issue or to me by email? I don&#39;t recall a recent bug like th=
is, so you may have found a new issue.</div><div><br></div><div>Thanks,</di=
v><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=B6hn via=
 gdal-dev &lt;<a href=3D"mailto:[email protected]" target=3D"_blank"=
>[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmai=
l_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-lef=
t-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div>




<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>
</blockquote></div>

--0000000000004c06ee06549bc782--

--===============2439153411228935285==
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

--===============2439153411228935285==--