mkoenigb / ProcessX

Repository for QGIS ProcessX Plug-In
GNU General Public License v3.0
3 stars 3 forks source link

Split Lines At Nearest Points causes QGIS to crash unconditionally #11

Open mhaertel opened 2 days ago

mhaertel commented 2 days ago

As a part of a workflow that intends to split OSM roads at self intersections, I used ProcessX tool Vector > Conditional "Split Lines At Nearest Points". This worked fine several times (I used it in a QGIS model and processed hundreds of thousands of line objects) and therefore want to thank you for providing this great tool to us!

However, at some point of the model it causes QGIS to crash. I tried the current QGIS devel 3.38.x and and QGIS LTR 3.34.x all with the same result. I was able to identifiy the line object that causes the trouble.

QGIS check geometry says it is ok. Basically it is a disconnected multipart line. To reproduce take the line and points from the attached file and run the algorithm (I use a maximum distance value of 0.1). It will cause QGIS to unconditionally crash and close!

ProcessX_SplitLines.zip

mkoenigb commented 1 day ago

Not sure what it is exactly, but I guess there is something wrong with your line. I can reproduce the crash with your file. It does also crash when saving the .shp as geopackage. However, if I extract the WKT information and create a new, identical line, from the WKT, it does not crash.

MultiLineString ((366253.14610372 5659041.42210553, 366206.83253575 5658978.13273243, 366177.03765794 5658954.92750591, 366138.73291032 5658923.18370974),(366116.02933719 5658901.89305665, 366110.51890426 5658886.31044046, 366079.36805209 5658829.27125614, 366050.24280162 5658787.35646531, 366040.06807267 5658772.7108622, 366015.78852664 5658742.19769273, 366019.93376906 5658720.39297392, 366018.76676049 5658713.79176453, 366005.9543278 5658722.31375568, 365993.12363772 5658726.35219245, 365983.34889308 5658725.22637624, 365961.89357133 5658722.21206165, 365959.34345947 5658719.31860897, 365968.48994511 5658710.02384999, 366012.00044054 5658682.7236985, 366068.31824882 5658645.86742783, 366077.87715234 5658638.94328489, 366077.04131524 5658635.1040169, 366065.10402702 5658616.30934443, 366061.53123449 5658608.59114993))

Same when I clean your line using v.clean (standard settings). The cleaned line does not cause a crash.

So it doesnt seem to be a bug in the processing tool but some weird geometry error in your line.