Bug report #14152

Form annotation crashs QGIS with Segmentation fault (core dumped)

Added by Alexandre Neto about 4 years ago. Updated about 4 years ago.

Status:Closed
Priority:Severe/Regression
Assignee:Martin Dobias
Category:Map Tools
Affected QGIS version:master Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data:No Copied to github as #:22154

Description

Trying to use Form annotation, once you select a ui file and press OK, QGIS master crashes.

This works fine in QGIS 2.8.6 following Tim Sutton instructions here:

[[https://youtu.be/0pDBuSbQ02o?t=2m25s]]

You can try to replicate the bug using the annotation_form_example.ui file with the Regions Layer of the QGIS Sample Data (Alaska Dataset). Both in attachment.

  1. Add Region Layer to QGIS and make it active
  2. Using the form annotation tool, click over a region polygon
  3. Double-click the created annotation to access setting
  4. Select the annotation_form_example.ui and press OK

If everything went well, the form should appear inside the annotation.
custom_annotation

Instead, QGIS exits with Segmentation fault (core dumped)

But instead QGIS crashes with the followin message:

annotation_form_example.ui - Example form (1.5 KB) Alexandre Neto, 2016-01-21 05:11 AM

custom_annotation.png - custom_annotation (90.7 KB) Alexandre Neto, 2016-01-21 05:11 AM


Related issues

Related to QGIS Application - Bug report #8760: Custom Form from .ui File crashes QGIS on Ubuntu Closed 2013-10-03

History

#1 Updated by Martin Dobias about 4 years ago

I cannot replicate unfortunately. Could you please try to generate backtrace? (i.e. run in gdb, when it crashes type "bt" and copy the output here).

#2 Updated by Martin Dobias about 4 years ago

  • Status changed from Open to Feedback

#3 Updated by Alexandre Neto about 4 years ago

  • Assignee set to Martin Dobias

I have used gdb and I got this:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7a06248 in QFormInternal::domPropertyToVariant(QFormInternal::QAbstractFormBuilder*, QMetaObject const*, QFormInternal::DomProperty const*) ()
   from /usr/lib/libqgis_app.so.2.13.0

After tying bt I got this:

#0  0x00007ffff7a06248 in QFormInternal::domPropertyToVariant(QFormInternal::QAbstractFormBuilder*, QMetaObject const*, QFormInternal::DomProperty const*) ()
   from /usr/lib/libqgis_app.so.2.13.0
#1  0x00007ffff79b5009 in QFormInternal::QAbstractFormBuilder::toVariant(QMetaObject const*, QFormInternal::DomProperty*) ()
   from /usr/lib/libqgis_app.so.2.13.0
#2  0x00007ffff79ce542 in QFormInternal::QFormBuilder::applyProperties(QObject*, QList<QFormInternal::DomProperty*> const&) ()
   from /usr/lib/libqgis_app.so.2.13.0
#3  0x00007ffff79b0401 in QFormInternal::FormBuilderPrivate::applyProperties(QObject*, QList<QFormInternal::DomProperty*> const&) ()
   from /usr/lib/libqgis_app.so.2.13.0
#4  0x00007ffff79bc460 in QFormInternal::QAbstractFormBuilder::create(QFormInternal::DomWidget*, QWidget*) () from /usr/lib/libqgis_app.so.2.13.0
#5  0x00007ffff79cf361 in QFormInternal::QFormBuilder::create(QFormInternal::DomWidget*, QWidget*) () from /usr/lib/libqgis_app.so.2.13.0
#6  0x00007ffff79b0abe in QFormInternal::FormBuilderPrivate::create(QFormInternal::DomWidget*, QWidget*) () from /usr/lib/libqgis_app.so.2.13.0
#7  0x00007ffff79be6d3 in QFormInternal::QAbstractFormBuilder::create(QFormInternal::DomUI*, QWidget*) () from /usr/lib/libqgis_app.so.2.13.0
#8  0x00007ffff79b0a58 in QFormInternal::FormBuilderPrivate::create(QFormInternal::DomUI*, QWidget*) () from /usr/lib/libqgis_app.so.2.13.0
#9  0x00007ffff702b041 in QFormInternal::QAbstractFormBuilder::load(QIODevice*, ---Type <return> to continue, or q <return> to quit---
QWidget*) () from /usr/lib/libqgis_gui.so.2.13.0
#10 0x00007ffff7023322 in QUiLoader::load(QIODevice*, QWidget*) ()
   from /usr/lib/libqgis_gui.so.2.13.0
#11 0x00007ffff6f2c3fd in QgsFormAnnotationItem::createDesignerWidget (this=
    0x1476d30, filePath=...)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/gui/qgsformannotationitem.cpp:87
#12 0x00007ffff6f2c24a in QgsFormAnnotationItem::setDesignerForm (
    this=0x1476d30, uiFile=...)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/gui/qgsformannotationitem.cpp:67
#13 0x00007ffff766f04b in QgsFormAnnotationDialog::applySettingsToItem (
    this=0x765c6a0)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/app/qgsformannotationdialog.cpp:57
#14 0x00007ffff7995b0d in QgsFormAnnotationDialog::qt_static_metacall (
    _o=0x765c6a0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffb550)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/debian/build/src/app/moc_qgsformannotationdialog.cxx:52
#15 0x00007ffff5c6987a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#16 0x00007ffff5c6987a in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#17 0x00007ffff563d172 in QAbstractButton::clicked(bool) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#18 0x00007ffff53a0a63 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007ffff53a1bd3 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007ffff53a1cbc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007ffff503e51a in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#22 0x00007ffff4feee2c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#23 0x00007ffff4ff55dd in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007ffff62890d1 in QgsApplication::notify (this=0x7fffffffd950, 
    receiver=0x73a3220, event=0x7fffffffbc30)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/core/qgsapplication.cpp:281
#25 0x00007ffff5c554dd in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007ffff4ff4d93 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#27 0x00007ffff50699eb in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#28 0x00007ffff5069289 in QApplication::x11ProcessEvent(_XEvent*) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#29 0x00007ffff5090b32 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#30 0x00007fffeddf6e04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffeddf7048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffeddf70ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff5c827be in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#34 0x00007ffff5090be6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#35 0x00007ffff5c540af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#36 0x00007ffff5c543a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#37 0x00007ffff549606c in QDialog::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#38 0x00007ffff772e000 in QgsMapToolAnnotation::canvasDoubleClickEvent (this=
    0x12900f0, e=0x779ee00)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/app/qgsmaptoolannotation.cpp:255
#39 0x00007ffff6f5a973 in QgsMapCanvas::mouseDoubleClickEvent (this=0xed7130, 
    e=0x7fffffffc9e0)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/gui/qgsmapcanvas---Type <return> to continue, or q <return> to quit---
.cpp:1287
#40 0x00007ffff503e65e in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#41 0x00007ffff53e004e in QFrame::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#42 0x00007ffff55eb859 in QGraphicsView::viewportEvent(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#43 0x00007ffff5c55646 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#44 0x00007ffff4feee0c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#45 0x00007ffff4ff55dd in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#46 0x00007ffff62890d1 in QgsApplication::notify (this=0x7fffffffd950, 
    receiver=0xec8620, event=0x7fffffffc9e0)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/core/qgsapplication.cpp:281
#47 0x00007ffff5c554dd in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#48 0x00007ffff4ff4d93 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#49 0x00007ffff50699eb in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#50 0x00007ffff5069289 in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#51 0x00007ffff5090b32 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#52 0x00007fffeddf6e04 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007fffeddf7048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007fffeddf70ec in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007ffff5c827a1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#56 0x00007ffff5090be6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#57 0x00007ffff5c540af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#58 0x00007ffff5c543a5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#59 0x00007ffff5c59b79 in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#60 0x0000000000409ac0 in main (argc=1, argv=0x7fffffffdcc8)
    at /tmp/buildd/qgis-2.13.0+git20160124+ae52aab+20trusty/src/app/main.cpp:1226

#4 Updated by Martin Dobias about 4 years ago

This looks like a duplicate of #8760 - crash within Qt in QUiLoader::load

#5 Updated by Martin Dobias about 4 years ago

Alexandre, could you please confirm whether you get a crash also if you try to use that .ui file for attribute form? In such case we could close this one as a duplicate of #8760

#6 Updated by Alexandre Neto about 4 years ago

  • Status changed from Feedback to Closed

You are right, this is a duplication. I will close it and move the discussion to #8760.

Also available in: Atom PDF