Bug report #7351
Crash with node tool when on the fly CRS transformation enabled
Status: | Closed | ||
---|---|---|---|
Priority: | Severe/Regression | ||
Assignee: | Jürgen Fischer | ||
Category: | Digitising | ||
Affected QGIS version: | master | Regression?: | No |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | No | Resolution: | |
Crashes QGIS or corrupts data: | Yes | Copied to github as #: | 16328 |
Description
- Use node move tool on vector layer
- Turn on raster layer
- Forget to re-select node layer
- Click on map
- Crash
Related issues
Associated revisions
nodetool: track layer of selected feature instead of current layer (fixes #7351)
History
#1 Updated by Salvatore Larosa over 11 years ago
Hi Nathan,
I can't reproduce here, Linux and QGIS master.
I suppose it occurs on Windows machine.
#2 Updated by Regis Haubourg over 11 years ago
Confirmed here on Widows 7 and revision 32de07d..
#3 Updated by Borys Jurgiel over 11 years ago
Confirmed on Linux/master, only when OTFR enabled:
1) Add a vector and a raster layer, ENABLE OTFR
2) Activate the edit mode, then the node tool and SELECT ANY FEATURE
3) Choose the raster layer in TOC. Edit tools become grayed, but the mouse cursor is still cross.
4) Click wherever on the map -> crash
The crash doesn't happen with OTFR disabled.
The crash doesn't happen until one of features is in edit node mode.
#4 Updated by Filipe Dias over 11 years ago
See #6567
#5 Updated by Salvatore Larosa over 11 years ago
- Subject changed from Crash with node tool when raster enabled to Crash with node tool when on the fly CRS transformation enabled
- Crashes QGIS or corrupts data changed from No to Yes
- Category changed from Rasters to Digitising
- File nodetool.png added
ok, with the above steps I can confirm it.
it is not needs to load a raster layer.
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff4a6cbbc in QgsCoordinateTransform::transform (this=0x0, thePoint=..., direction=QgsCoordinateTransform::ReverseTransform) at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgscoordinatetransform.cpp:226 226 if ( mShortCircuit || !mInitialisedFlag ) (gdb) bt #0 0x00007ffff4a6cbbc in QgsCoordinateTransform::transform (this=0x0, thePoint=..., direction=QgsCoordinateTransform::ReverseTransform) at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgscoordinatetransform.cpp:226 #1 0x00007ffff4b0924f in QgsMapRenderer::mapToLayerCoordinates (this=0x113dd50, theLayer=0x0, point=...) at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgsmaprenderer.cpp:849 #2 0x00007ffff4397f2f in QgsMapTool::toLayerCoordinates (this=0x10f9500, layer=0x0, point=...) at /home/sam/pacchetti_gis/Quantum-GIS/src/gui/qgsmaptool.cpp:50 #3 0x00007ffff4397ea6 in QgsMapTool::toLayerCoordinates (this=0x10f9500, layer=0x0, point=...) at /home/sam/pacchetti_gis/Quantum-GIS/src/gui/qgsmaptool.cpp:45 #4 0x00000000006e2b5f in QgsMapToolNodeTool::canvasPressEvent (this=0x10f9500, e=0x7fffffffcc10) at /home/sam/pacchetti_gis/Quantum-GIS/src/app/nodetool/qgsmaptoolnodetool.cpp:373 #5 0x00007ffff438cd51 in QgsMapCanvas::mousePressEvent (this=0x1094280, e=0x7fffffffcc10) at /home/sam/pacchetti_gis/Quantum-GIS/src/gui/qgsmapcanvas.cpp:954 #6 0x00007ffff2a5f2b3 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #7 0x00007ffff2e09d36 in QFrame::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #8 0x00007ffff302237b in QGraphicsView::viewportEvent(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #9 0x00007ffff3665cc6 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #10 0x00007ffff2a0f6dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #11 0x00007ffff2a143eb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #12 0x00007ffff4a59d90 in QgsApplication::notify (this=0x7fffffffd940, receiver=0x10aa030, event= 0x7fffffffcc10) at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgsapplication.cpp:237 #13 0x00007ffff3665b5e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #14 0x00007ffff2a1054b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #15 0x00007ffff2a8afc4 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #16 0x00007ffff2a89d51 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #17 0x00007ffff2ab0bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #18 0x00007fffeeeed355 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #19 0x00007fffeeeed688 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #20 0x00007fffeeeed744 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007ffff3694276 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #22 0x00007ffff2ab083e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #23 0x00007ffff36648af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #24 0x00007ffff3664b38 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #25 0x00007ffff3669cf8 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #26 0x0000000000550175 in main (argc=1, argv=0x7fffffffe398) at /home/sam/pacchetti_gis/Quantum-GIS/src/app/main.cpp:914
Also, the nodes have shifted (see image)
#6 Updated by Giovanni Manghi over 11 years ago
see also #7958
#7 Updated by Salvatore Larosa over 11 years ago
more info:
maybe backtrace with locals variables helps: http://codepad.org/iiWFniqY
#8 Updated by Jürgen Fischer over 11 years ago
- Assignee set to Jürgen Fischer
#9 Updated by Jürgen Fischer over 11 years ago
- Status changed from Open to Closed
Fixed in changeset c5e110d8f5c84f9c67ef7036f18859ff939c4604.