Bug report #7351

Crash with node tool when on the fly CRS transformation enabled

Added by Nathan Woodrow almost 12 years ago. Updated over 11 years ago.

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

nodetool.png (20.6 KB) Salvatore Larosa, 2013-04-02 08:39 AM


Related issues

Related to QGIS Application - Bug report #6567: QGIS Lisboa crashes when selecting a raster and clicking ... Closed 2012-10-24
Related to QGIS Application - Bug report #7958: Crash when switch off a WMS layer while you edit a vector... Closed 2013-05-31

Associated revisions

Revision c5e110d8
Added by Jürgen Fischer over 11 years ago

nodetool: track layer of selected feature instead of current layer (fixes #7351)

History

#1 Updated by Salvatore Larosa almost 12 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 almost 12 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

Also available in: Atom PDF