Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when try to split line by point #51501

Closed
2 tasks done
kapiwko opened this issue Jan 17, 2023 · 6 comments · Fixed by #51797
Closed
2 tasks done

Crash when try to split line by point #51501

kapiwko opened this issue Jan 17, 2023 · 6 comments · Fixed by #51797
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! Crash/Data Corruption Digitizing Related to feature digitizing map tools or functionality Regression Something which used to work, but doesn't anymore

Comments

@kapiwko
Copy link

kapiwko commented Jan 17, 2023

What is the bug or the crash?

Tries to split line by point. Click and crash.

image

#0  0x00007ffff3693c00 in QgsGeos::linePointDifference(GEOSGeom_t*) const () from /usr/lib/libqgis_core.so.3.28.2
#1  0x00007ffff369591d in QgsGeos::splitLinearGeometry(GEOSGeom_t*, QVector<QgsGeometry>&, bool) const () from /usr/lib/libqgis_core.so.3.28.2
#2  0x00007ffff36962c8 in QgsGeos::splitGeometry(QgsLineString const&, QVector<QgsGeometry>&, bool, QVector<QgsPoint>&, QString*, bool) const () from /usr/lib/libqgis_core.so.3.28.2
#3  0x00007ffff366f3da in QgsGeometry::splitGeometry(QVector<QgsPoint> const&, QVector<QgsGeometry>&, bool, QVector<QgsPoint>&, bool, bool) () from /usr/lib/libqgis_core.so.3.28.2
#4  0x00007ffff36786f0 in QgsGeometry::splitGeometry(QgsCurve const*, QVector<QgsGeometry>&, bool, bool, QVector<QgsPoint>&, bool) () from /usr/lib/libqgis_core.so.3.28.2
#5  0x00007ffff3736bc8 in QgsVectorLayerEditUtils::splitFeatures(QgsCurve const*, QVector<QgsPoint>&, bool, bool) () from /usr/lib/libqgis_core.so.3.28.2
#6  0x00007ffff36fb6cb in QgsVectorLayer::splitFeatures(QgsCurve const*, QVector<QgsPoint>&, bool, bool) () from /usr/lib/libqgis_core.so.3.28.2
#7  0x00007ffff76ed468 in QgsMapToolSplitFeatures::cadCanvasReleaseEvent(QgsMapMouseEvent*) () from /usr/lib/libqgis_app.so.3.28.2
#8  0x00007ffff69a5877 in QgsMapCanvas::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libqgis_gui.so.3.28.2
#9  0x00007ffff55af6e7 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff565d823 in QFrame::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff488cc02 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#12 0x00007ffff5578b0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007ffff557e339 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#14 0x00007ffff30fea54 in QgsApplication::notify(QObject*, QEvent*) () from /usr/lib/libqgis_core.so.3.28.2
#15 0x00007ffff488cf98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#16 0x00007ffff557c337 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007ffff55cd3b5 in ?? () from /usr/lib/libQt5Widgets.so.5
#18 0x00007ffff55cf15e in ?? () from /usr/lib/libQt5Widgets.so.5
#19 0x00007ffff5578b1c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007ffff30fea54 in QgsApplication::notify(QObject*, QEvent*) () from /usr/lib/libqgis_core.so.3.28.2
#21 0x00007ffff488cf98 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#22 0x00007ffff4d3f15c in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5
#23 0x00007ffff4d289a5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#24 0x00007fffe895e9f5 in ?? () from /usr/lib/libQt5WaylandClient.so.5
#25 0x00007fffee11687b in g_main_dispatch (context=0x5555557f72f0) at ../glib/glib/gmain.c:3454
#26 g_main_context_dispatch (context=0x5555557f72f0) at ../glib/glib/gmain.c:4172
#27 0x00007fffee16dc89 in g_main_context_iterate.constprop.0 (context=0x5555557f72f0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4248
#28 0x00007fffee115132 in g_main_context_iteration (context=0x5555557f72f0, may_block=1) at ../glib/glib/gmain.c:4313
#29 0x00007ffff48d7c4c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#30 0x00007ffff488573c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#31 0x00007ffff4890269 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#32 0x000055555555f8ef in ?? ()
#33 0x00007ffff203c290 in __libc_start_call_main (main=main@entry=0x55555555cfd0, argc=argc@entry=1, argv=argv@entry=0x7fffffffd4b8) at ../sysdeps/nptl/libc_start_call_main.h:58
#34 0x00007ffff203c34a in __libc_start_main_impl (main=0x55555555cfd0, argc=1, argv=0x7fffffffd4b8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd4a8) at ../csu/libc-start.c:381
#35 0x0000555555563095 in ?? ()

Steps to reproduce the issue

  1. Download qgis-test.zip
  2. Open project
  3. Edit "test" layer
  4. Try to split line as in screenshot above
  5. QGIS crashes

Versions

Wersja QGIS 3.28.2-Firenze Gałąź kodu QGIS Release 3.28
Wersja Qt 5.15.7
Wersja Pythona 3.10.8
Wersja GDAL/OGR 3.6.1
Wersja PROJ 9.1.1
Wersja bazy danych Rejestru EPSG v10.076 (2022-08-31)
Wersja GEOS 3.11.1-CAPI-1.17.1
Wersja SQLite 3.40.0
Wersja PDAL 2.4.3
Wersja klienta PostgreSQL unknown
Wersja SpatiaLite 5.0.1
Wersja QWT 6.2.0
Wersja QScintilla2 2.13.3
Wersja systemu operacyjnego Manjaro Linux
       
Active Python plugins
Mergin 2022.6
changeDataSource 3.1
travel_time_platform_plugin 1.8.0
MetaSearch 0.3.6
db_manager 0.1.20
grassprovider 2.12.99
processing 2.12.99
sagaprovider 2.12.99

Supported QGIS version

  • I'm running a supported QGIS version according to the roadmap.

New profile

  • I tried with a new QGIS profile

Additional context

No response

@kapiwko kapiwko added the Bug Either a bug report, or a bug fix. Let's hope for the latter! label Jan 17, 2023
@agiudiceandrea agiudiceandrea added Digitizing Related to feature digitizing map tools or functionality Crash/Data Corruption labels Jan 17, 2023
@agiudiceandrea
Copy link
Contributor

@kapiwko could you please clarify what tool are you using? Is it the "Split Features" tool?

@kapiwko
Copy link
Author

kapiwko commented Jan 17, 2023

Is it the "Split Features" tool?

yes

@uclaros
Copy link
Contributor

uclaros commented Jan 18, 2023

Probably related to #50948 and the changes in #47306

@agiudiceandrea
Copy link
Contributor

agiudiceandrea commented Jan 18, 2023

I can confirm the occurrence of the crash with QGIS 3.28.2 also on Windows. It seems to me the crash doesn't occur using QGIS 3.22.14.

The crash also occurs using the latest available 3.29.0-Master (33467dd) from OSGeo4W

Python Stack Trace
Windows fatal exception: access violation

Current thread 0x000080b8 (most recent call first):



Stack Trace


QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QgsMapToolShapeEllipseCenterPoint::QgsMapToolShapeEllipseCenterPoint :
QgsMaskingWidget::qt_static_metacall :
QgsMaskingWidget::qt_static_metacall :
QWidget::event :
QFrame::event :
QGraphicsView::viewportEvent :
QgsMaskingWidget::qt_static_metacall :
QCoreApplicationPrivate::sendThroughObjectEventFilters :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QSizePolicy::QSizePolicy :
QSizePolicy::QSizePolicy :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsSettingsEntryDouble::QgsSettingsEntryDouble :
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
qt_plugin_query_metadata :
QEventLoop::exec :
QCoreApplication::exec :
QgsMapToolShapeEllipseCenterPoint::QgsMapToolShapeEllipseCenterPoint :
BaseThreadInitThunk :
RtlUserThreadStart :




QGIS Info
QGIS Version: 3.29.0-Master
QGIS code revision: 33467dde16
Compiled against Qt: 5.15.3
Running against Qt: 5.15.3
Compiled against GDAL: 3.7.0dev-5ccdf5fb39
Running against GDAL: 3.7.0dev-5ccdf5fb39



System Info
CPU Type: x86_64
Kernel Type: winnt
Kernel Version: 10.0.18362

@agiudiceandrea agiudiceandrea added the Regression Something which used to work, but doesn't anymore label Jan 18, 2023
@uclaros
Copy link
Contributor

uclaros commented Jan 18, 2023

^^ That's a different stacktrace you got there!

@agiudiceandrea
Copy link
Contributor

agiudiceandrea commented Jan 18, 2023

^^ That's a different stacktrace you got there!

@uclaros Yes, but using the same Split Features tool...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! Crash/Data Corruption Digitizing Related to feature digitizing map tools or functionality Regression Something which used to work, but doesn't anymore
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants