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'= ;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 <<a href=3D"mailto:[email protected]">d= [email protected]</a>> 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'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 <<a href=3D"mailto:[email protected]" target=3D"_b= lank">[email protected]</a>> 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'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& layer ) -> std::vector< GIntBi= g ></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 << &q= uot;Processing layer '" << layer.GetName() << "&#= 39;...\n";<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< GIntB= ig > 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 << "Got a null feature from layer '&qu= ot; << layer.GetName() << "'. Skipping it.\n";</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->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'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 'boundary'...<= /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 'landcover'...= </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 'landuse'...</= 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 &) 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 & 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 & 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 & = 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 &) 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::<lambda_8c47a75e= 4bac7a256ab75080e3e5d5f0>::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<<lambda_8c47a75e4bac7a256ab75080e3e5d5f0>= >(geos::noding::snapround::HotPixelIndex::addNodes::__l2::<lambda_8c4= 7a75e4bac7a256ab75080e3e5d5f0> && 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<geos::nod= ing::SegmentString *,std::allocator<geos::noding::SegmentString *>>= ; & 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<geos::noding::Segment= String *,std::allocator<geos::noding::SegmentString *>> & inpu= tSegStrings, std::vector<geos::noding::SegmentString *,std::allocator<= ;geos::noding::SegmentString *>> & 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<geos::noding::SegmentSt= ring *,std::allocator<geos::noding::SegmentString *>> * 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::<lambda_3988e1633fcf92bee6886158a6950fe9>= ::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<`a= nonymous namespace'::InterruptManager,<lambda_3988e1633fcf92bee68861= 58a6950fe9>,0>(GEOSContextHandle_HS * extHandle, GEOSIntersection_r::= __l2::<lambda_3988e1633fcf92bee6886158a6950fe9> && 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<OGRMVTLayerBase>::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==--