Bug report #8095
Topology checker crashes qgis when clicking on "new project" or when readding a previously checked vector
Status: | Closed | ||
---|---|---|---|
Priority: | Severe/Regression | ||
Assignee: | vinayan Parameswaran | ||
Category: | C++ Plugins | ||
Affected QGIS version: | master | Regression?: | No |
Operating System: | Easy fix?: | No | |
Pull Request or Patch supplied: | No | Resolution: | fixed |
Crashes QGIS or corrupts data: | Yes | Copied to github as #: | 16932 |
Description
Hi,
The topological errors found by the topology checker and identified in red does not disappear, even after doing "Project -> New". It is necessary to "Validate all" again in the new project (without having added any rule) or, alternatively, close and reopen QGIS.
Thanks a lot for this great plugin!
History
#1 Updated by vinayan Parameswaran over 11 years ago
- Status changed from Open to Closed
Fixed in changeset 3d7b802dc514912a695b26885e398f5266906e1f.
#2 Updated by Pedro Venâncio over 11 years ago
- Status changed from Closed to Reopened
Hi Vinayan,
Thank you for the quick fix! But now two different things occurs:
1) If you click on some of the errors in the list, when you make "New project", the last error that was clicked, do not disappear. All other disappear as expected.
2) More serious, clicking again in "New project", crashes QGIS:
Debug: performing cascaded union..might take time..- Fatal: QGIS died on signal 11 Stacktrace (piped through c++filt): /usr/bin/qgis.bin(myMessageOutput(QtMsgType, char const*)+0x136)[0x810d856] /usr/lib/i386-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x39)[0x64b519] /usr/lib/i386-linux-gnu/libQtCore.so.4(+0x5ca4b)[0x64ba4b] /usr/lib/i386-linux-gnu/libQtCore.so.4(qFatal(char const*, ...)+0x18)[0x64bb68] /usr/bin/qgis.bin(qgisCrash(int)+0x17)[0x810d637] [0x943400] /usr/lib/libqgis_gui.so.1.9.0(QList<QList<QgsPoint> >::clear()+0x3e)[0x2ac8c5e] /usr/lib/libqgis_gui.so.1.9.0(QgsRubberBand::reset(QGis::GeometryType)+0x25)[0x2ac6e25] /usr/lib/qgis/plugins/libtopolplugin.so(checkDock::deleteErrors()+0xba)[0xb234526a] /usr/lib/qgis/plugins/libtopolplugin.so(+0x32148)[0xb235f148] /usr/lib/i386-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x241)[0x7826b1] /usr/lib/libqgis_gui.so.1.9.0(QgisInterface::newProjectCreated()+0x35)[0x2af8825] /usr/lib/libqgis_gui.so.1.9.0(+0x24d994)[0x2af8994] /usr/lib/i386-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x241)[0x7826b1] /usr/bin/qgis.bin(QgisApp::newProject()+0x27)[0x8429387] /usr/bin/qgis.bin(QgisApp::fileNew(bool, bool)+0x96d)[0x814378d] /usr/bin/qgis.bin(QgisApp::fileNew()+0x1f)[0x814486f] /usr/bin/qgis.bin[0x842a82d] /usr/lib/i386-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x241)[0x7826b1] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAction::triggered(bool)+0x4d)[0x67389bd] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAction::activate(QAction::ActionEvent)+0x8b)[0x6738c5b] /usr/lib/i386-linux-gnu/libQtGui.so.4(QToolButton::nextCheckState()+0x30)[0x6c45410] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x567c57)[0x6b6cc57] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAbstractButton::mouseReleaseEvent(QMouseEvent*)+0xa6)[0x6b6cf56] /usr/lib/i386-linux-gnu/libQtGui.so.4(QToolButton::mouseReleaseEvent(QMouseEvent*)+0x2d)[0x6c454ad] /usr/lib/i386-linux-gnu/libQtGui.so.4(QWidget::event(QEvent*)+0x40c)[0x679a1ac] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAbstractButton::event(QEvent*)+0x69)[0x6b6c1f9] /usr/lib/i386-linux-gnu/libQtGui.so.4(QToolButton::event(QEvent*)+0x4c)[0x6c46bdc] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplicationPrivate::notify_helper(QObject*, QEvent*)+0xc4)[0x673fed4] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::notify(QObject*, QEvent*)+0xea4)[0x6746024] /usr/lib/libqgis_core.so.1.9.0(QgsApplication::notify(QObject*, QEvent*)+0x81)[0x27df81] /usr/lib/i386-linux-gnu/libQtCore.so.4(QCoreApplication::notifyInternal(QObject*, QEvent*)+0x8e)[0x76b97e] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)+0x115)[0x6740e95] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1c8074)[0x67cd074] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::x11ProcessEvent(_XEvent*)+0xb8d)[0x67cbc0d] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1f3eac)[0x67f8eac] /lib/i386-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x146)[0x4c64d86] /lib/i386-linux-gnu/libglib-2.0.so.0(+0x47125)[0x4c65125] /lib/i386-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x41)[0x4c65201] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x67)[0x79e887] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1f3aaa)[0x67f8aaa] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x4d)[0x76a50d] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+0xf9)[0x76a7a9] /usr/lib/i386-linux-gnu/libQtCore.so.4(QCoreApplication::exec()+0x9a)[0x76feba] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::exec()+0x24)[0x673da74] /usr/bin/qgis.bin(main+0x22fd)[0x81094ad] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x44f44d3] /usr/bin/qgis.bin[0x810d581] Abortado (core dumped)
Please see the screencast: http://goo.gl/7Q393
In this video I am using a layer that Giovanni put in another ticket, but I've tested it with several other layers (including polygons and polylines in shapefiles and PostGIS layers).
I think we can consider it as a "Blocker" at this moment.
#3 Updated by vinayan Parameswaran over 11 years ago
- Priority changed from Normal to Severe/Regression
#4 Updated by vinayan Parameswaran over 11 years ago
Hi Pedro,
Thanks for reporting..it is hopefully a simple fix. Are you sure the stack-trace posted is based on crash when opening new project? it seems to me that it was created when running 'must not have gaps' on the layer the Giovanni tested as reported in another bug..
#5 Updated by Pedro Venâncio over 11 years ago
Hi Vinayan,
No, in the previous screencast it is not visible, but see this: http://goo.gl/f3a7J
-> New project crash
pedro@tsunami:~$ qgis Warning: loading of qt translation failed [/usr/share/qt4/translations/qt_en_US] Debug: "layerid = ruas20130619082857165" Debug: 559 Fatal: QGIS died on signal 11 Stacktrace (piped through c++filt): /usr/bin/qgis.bin(myMessageOutput(QtMsgType, char const*)+0x136)[0x810d856] /usr/lib/i386-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x39)[0x2acf519] /usr/lib/i386-linux-gnu/libQtCore.so.4(+0x5ca4b)[0x2acfa4b] /usr/lib/i386-linux-gnu/libQtCore.so.4(qFatal(char const*, ...)+0x18)[0x2acfb68] /usr/bin/qgis.bin(qgisCrash(int)+0x17)[0x810d637] [0x913400] /usr/lib/i386-linux-gnu/libQtGui.so.4(QGraphicsItem::prepareGeometryChange()+0x37)[0x3503bc7] /usr/lib/libqgis_gui.so.1.9.0(QgsMapCanvasItem::setRect(QgsRectangle const&)+0x16b)[0x40e71b] /usr/lib/libqgis_gui.so.1.9.0(QgsRubberBand::updateRect()+0x229)[0x468ef9] /usr/lib/libqgis_gui.so.1.9.0(QgsRubberBand::reset(QGis::GeometryType)+0x34)[0x469e34] /usr/lib/qgis/plugins/libtopolplugin.so(checkDock::deleteErrors()+0xba)[0xb22ef26a] /usr/lib/qgis/plugins/libtopolplugin.so(+0x32148)[0xb2309148] /usr/lib/i386-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x241)[0x2c066b1] /usr/lib/libqgis_gui.so.1.9.0(QgisInterface::newProjectCreated()+0x35)[0x49b825] /usr/lib/libqgis_gui.so.1.9.0(+0x24d994)[0x49b994] /usr/lib/i386-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x241)[0x2c066b1] /usr/bin/qgis.bin(QgisApp::newProject()+0x27)[0x8429387] /usr/bin/qgis.bin(QgisApp::fileNew(bool, bool)+0x96d)[0x814378d] /usr/bin/qgis.bin(QgisApp::fileNew()+0x1f)[0x814486f] /usr/bin/qgis.bin[0x842a82d] /usr/lib/i386-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x241)[0x2c066b1] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAction::triggered(bool)+0x4d)[0x2e839bd] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAction::activate(QAction::ActionEvent)+0x8b)[0x2e83c5b] /usr/lib/i386-linux-gnu/libQtGui.so.4(QToolButton::nextCheckState()+0x30)[0x3390410] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x567c57)[0x32b7c57] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAbstractButton::mouseReleaseEvent(QMouseEvent*)+0xa6)[0x32b7f56] /usr/lib/i386-linux-gnu/libQtGui.so.4(QToolButton::mouseReleaseEvent(QMouseEvent*)+0x2d)[0x33904ad] /usr/lib/i386-linux-gnu/libQtGui.so.4(QWidget::event(QEvent*)+0x40c)[0x2ee51ac] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAbstractButton::event(QEvent*)+0x69)[0x32b71f9] /usr/lib/i386-linux-gnu/libQtGui.so.4(QToolButton::event(QEvent*)+0x4c)[0x3391bdc] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplicationPrivate::notify_helper(QObject*, QEvent*)+0xc4)[0x2e8aed4] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::notify(QObject*, QEvent*)+0xea4)[0x2e91024] /usr/lib/libqgis_core.so.1.9.0(QgsApplication::notify(QObject*, QEvent*)+0x81)[0x2701f81] /usr/lib/i386-linux-gnu/libQtCore.so.4(QCoreApplication::notifyInternal(QObject*, QEvent*)+0x8e)[0x2bef97e] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)+0x115)[0x2e8be95] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1c8074)[0x2f18074] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::x11ProcessEvent(_XEvent*)+0xb8d)[0x2f16c0d] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1f3eac)[0x2f43eac] /lib/i386-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x146)[0x4fadd86] /lib/i386-linux-gnu/libglib-2.0.so.0(+0x47125)[0x4fae125] /lib/i386-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x41)[0x4fae201] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x67)[0x2c22887] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1f3aaa)[0x2f43aaa] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x4d)[0x2bee50d] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+0xf9)[0x2bee7a9] /usr/lib/i386-linux-gnu/libQtCore.so.4(QCoreApplication::exec()+0x9a)[0x2bf3eba] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::exec()+0x24)[0x2e88a74] /usr/bin/qgis.bin(main+0x22fd)[0x81094ad] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x498e4d3] /usr/bin/qgis.bin[0x810d581] Abortado (core dumped)
-> Run Topopogy Checker again crash
pedro@tsunami:~$ qgis Warning: loading of qt translation failed [/usr/share/qt4/translations/qt_en_US] Debug: "layerid = ruas20130619082941294" Debug: 559 Debug: "layerid = ruas20130619083003196" Fatal: QGIS died on signal 11 Stacktrace (piped through c++filt): /usr/bin/qgis.bin(myMessageOutput(QtMsgType, char const*)+0x136)[0x810d856] /usr/lib/i386-linux-gnu/libQtCore.so.4(qt_message_output(QtMsgType, char const*)+0x39)[0x84a519] /usr/lib/i386-linux-gnu/libQtCore.so.4(+0x5ca4b)[0x84aa4b] /usr/lib/i386-linux-gnu/libQtCore.so.4(qFatal(char const*, ...)+0x18)[0x84ab68] /usr/bin/qgis.bin(qgisCrash(int)+0x17)[0x810d637] [0xb74400] /usr/lib/libqgis_gui.so.1.9.0(QList<QList<QgsPoint> >::clear()+0x3e)[0x29a8c5e] /usr/lib/libqgis_gui.so.1.9.0(QgsRubberBand::reset(QGis::GeometryType)+0x25)[0x29a6e25] /usr/lib/qgis/plugins/libtopolplugin.so(checkDock::validate(ValidateType)+0x63)[0xb1ce81d3] /usr/lib/qgis/plugins/libtopolplugin.so(checkDock::validateAll()+0x23)[0xb1ce83c3] /usr/lib/qgis/plugins/libtopolplugin.so(+0x321a0)[0xb1d011a0] /usr/lib/i386-linux-gnu/libQtCore.so.4(QMetaObject::activate(QObject*, QMetaObject const*, int, void**)+0x241)[0x9816b1] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAbstractButton::clicked(bool)+0x4d)[0x3ff897d] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x56662d)[0x3cec62d] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x567c9b)[0x3cedc9b] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAbstractButton::mouseReleaseEvent(QMouseEvent*)+0xa6)[0x3cedf56] /usr/lib/i386-linux-gnu/libQtGui.so.4(QWidget::event(QEvent*)+0x40c)[0x391b1ac] /usr/lib/i386-linux-gnu/libQtGui.so.4(QAbstractButton::event(QEvent*)+0x69)[0x3ced1f9] /usr/lib/i386-linux-gnu/libQtGui.so.4(QPushButton::event(QEvent*)+0x48)[0x3d90768] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplicationPrivate::notify_helper(QObject*, QEvent*)+0xc4)[0x38c0ed4] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::notify(QObject*, QEvent*)+0xea4)[0x38c7024] /usr/lib/libqgis_core.so.1.9.0(QgsApplication::notify(QObject*, QEvent*)+0x81)[0x47cf81] /usr/lib/i386-linux-gnu/libQtCore.so.4(QCoreApplication::notifyInternal(QObject*, QEvent*)+0x8e)[0x96a97e] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool)+0x115)[0x38c1e95] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1c8074)[0x394e074] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::x11ProcessEvent(_XEvent*)+0xb8d)[0x394cc0d] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1f3eac)[0x3979eac] /lib/i386-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x146)[0x5256d86] /lib/i386-linux-gnu/libglib-2.0.so.0(+0x47125)[0x5257125] /lib/i386-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x41)[0x5257201] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x67)[0x99d887] /usr/lib/i386-linux-gnu/libQtGui.so.4(+0x1f3aaa)[0x3979aaa] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x4d)[0x96950d] /usr/lib/i386-linux-gnu/libQtCore.so.4(QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+0xf9)[0x9697a9] /usr/lib/i386-linux-gnu/libQtCore.so.4(QCoreApplication::exec()+0x9a)[0x96eeba] /usr/lib/i386-linux-gnu/libQtGui.so.4(QApplication::exec()+0x24)[0x38bea74] /usr/bin/qgis.bin(main+0x22fd)[0x81094ad] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x2b084d3] /usr/bin/qgis.bin[0x810d581] Abortado (core dumped)
Best regards!
#6 Updated by Giovanni Manghi over 11 years ago
- Crashes QGIS or corrupts data changed from No to Yes
- Subject changed from Topology checker red markers to Topology checker crashes qgis
1) If you click on some of the errors in the list, when you make "New project", the last error that was clicked, do not disappear. All other disappear as expected.
I cannot confirm this, but I can confirm a similar issue. If after clicking on "new project" I add again the layer I checked before, then the last selected feature/error is immediately identified in red. Is this on purpose?
2) More serious, clicking again in "New project", crashes QGIS:
confirmed, and it happens also if re-adding the previously checked vector, and clicking again "validate all".
#7 Updated by Salvatore Larosa over 11 years ago
is this a duplicate of #7845 ?
#8 Updated by Giovanni Manghi over 11 years ago
- Subject changed from Topology checker crashes qgis to Topology checker crashes qgis when clicking on "new project" or when readding a previously checked vector
#9 Updated by Giovanni Manghi over 11 years ago
Salvatore Larosa wrote:
is this a duplicate of #7845 ?
no, are separate issues, I changed the titles now.
#10 Updated by Matthias Kuhn over 11 years ago
- Status changed from Reopened to Closed
Fixed in changeset ce1a9a821db2c494cfbd6ed12a658a47d4c587e3.
Please verify, the fix was implemented based on the backtrace, without testing.
#11 Updated by Pedro Venâncio over 11 years ago
Matthias Kuhn wrote:
Fixed in changeset ce1a9a821db2c494cfbd6ed12a658a47d4c587e3.
Please verify, the fix was implemented based on the backtrace, without testing.
Hi Matthias,
I confirm, the crash is solved! Thank you very much!
I still have these problems:
Pedro Venâncio wrote:
1) If you click on some of the errors in the list, when you make "New project", the last error that was clicked, do not disappear. All other disappear as expected.
Giovanni Manghi wrote:
I cannot confirm this, but I can confirm a similar issue. If after clicking on "new project" I add again the layer I checked before, then the last selected feature/error is immediately identified in red. Is this on purpose?
Anyone confirm? Giovanni? It will be better to open a new ticket and keep this one just for the crash that Matthias solved?
Thanks!
#12 Updated by Giovanni Manghi over 11 years ago
- Resolution set to fixed
Pedro Venâncio wrote:
1) If you click on some of the errors in the list, when you make "New project", the last error that was clicked, do not disappear. All other disappear as expected.
I still cannot confirm this
Giovanni Manghi wrote:
I cannot confirm this, but I can confirm a similar issue. If after clicking on "new project" I add again the layer I checked before, then the last selected feature/error is immediately identified in red. Is this on purpose?
this is fixed.
It will be better to open a new ticket and keep this one just for the crash that Matthias solved?
better file a new ticket.
cheers!