Bug report #21178

QGIS 3.4.4 crash when using dynamic image in html textfield in print layout

Added by Dennis Real about 5 years ago. Updated about 5 years ago.

Status:Open
Priority:High
Assignee:-
Category:Map Composer/Printing
Affected QGIS version:3.6.0 Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data:Yes Copied to github as #:28996

Description

Steps to reproduce:

Note: Steps 1-8 already done in attached file. Unzip in /tmp to get right path to images.

1. Create new qgis project with some layers (OSM Standard as background, 1 KML with some points, 1 .ods table with additional information)
2. Connect KML (waypoint name) with table (column "ID")
3. Create new print layout
4. Create atlas over kml waypoints
5. insert text field with html source
6. include dynamic image in html using atlas feature id:
<img heigth=200 width=300 src='/tmp/[% @atlas_featureid %]-test.png'/>
7. Click through atlas. Image will change as expected
8. Save project and close qgis
9. Start qgis and open project again
10. Open print layout -> CRASH!

Reproducability: Always.

Trace:

qgis

/usr/lib/python3/dist-packages/qgis/core/additions/qgsfunction.py:107: DeprecationWarning: inspect.getargspec() is deprecated, use inspect.signature() or inspect.getfullargspec()
args = inspect.getargspec(function).args
Warning: QObject::connect: signal not found in QgisAppInterface
2019-02-05 19:39:52,508 - QuickOSM - INFO - Translation to de
Gtk-Message: 19:39:57.780: GtkDialog mapped without a transient parent. This is discouraged.
Warning: QBackingStore::endPaint() called with active painter on backingstore paint device
QGIS died on signal 11[New LWP 22884]
[New LWP 22885]
[New LWP 22886]
[New LWP 22887]
[New LWP 22888]
[New LWP 22889]
[New LWP 22892]
[New LWP 22893]
[New LWP 22895]
[New LWP 22903]
[New LWP 22911]
[New LWP 22915]
[New LWP 22916]
[New LWP 22917]
[New LWP 22918]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f6fa9bbd6c2 in GI_waitpid (pid=23519, stat_loc=0x7ffe59927cec, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
30 ../sysdeps/unix/sysv/linux/waitpid.c: Datei oder Verzeichnis nicht gefunden.
[Current thread is 1 (Thread 0x7f6fada78380 (LWP 22878))]
#0 0x00007f6fa9bbd6c2 in GI_waitpid (pid=23519, stat_loc=0x7ffe59927cec, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
resultvar = 18446744073709551104
sc_cancel_oldtype = 0
#1 0x00005618b38e18ee in ()
#2 0x00007f6fa9b17f20 in <signal handler called> () at /lib/x86_64-linux-gnu/libc.so.6
#3 0x00007f6faaf108c8 in QRasterPaintEngine::transformChanged() () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#4 0x00007f6faaf2a546 in QPainter::setWorldTransform(QTransform const&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#5 0x00007f6fab77d72b in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6 0x00007f6fab77e327 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7 0x00007f6fab743a41 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8 0x00007f6fab7e1a48 in QGraphicsEffectSource::draw(QPainter*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9 0x00007f6fac580e29 in QgsLayoutEffect::draw(QPainter*) () at /usr/lib/libqgis_core.so.3.4.4
#10 0x00007f6fab77eb5f in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007f6fab77f3aa in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007f6fab7a20c6 in QGraphicsView::paintEvent(QPaintEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f6fa7dc7899 in QgsLayoutView::paintEvent(QPaintEvent*) () at /usr/lib/libqgis_gui.so.3.4.4
#14 0x00007f6fab4b2038 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007f6fab5534be in QFrame::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f6fab7a0bfb in QGraphicsView::viewportEvent(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f6faa6f568c in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f6fab473805 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007f6fab47b0f4 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f6fac20496b in QgsApplication::notify(QObject*, QEvent*) () at /usr/lib/libqgis_core.so.3.4.4
#21 0x00007f6faa6f59a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f6fab4ab18a in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f6fab4ab74a in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f6fab4ac3b0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f6fab4ab356 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f6fab4ac3b0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007f6fab4ab356 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007f6fab4ac3b0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007f6fab4ab356 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007f6fab4ac3b0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007f6fab4ab356 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007f6fab482e54 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007f6fab4835f2 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007f6fab4ced2e in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007f6fab4cf64d in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007f6fab47382c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007f6fab47b0f4 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007f6fac20496b in QgsApplication::notify(QObject*, QEvent*) () at /usr/lib/libqgis_core.so.3.4.4
#39 0x00007f6faa6f59a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007f6faacb843f in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#41 0x00007f6faacb907d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#42 0x00007f6faac902eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#43 0x00007f6f7bc611c0 in () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#44 0x00007f6f9e3f2387 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007f6f9e3f25c0 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007f6f9e3f264c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007f6faa74e8ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007f6faa6f39ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#49 0x00007f6faa6fca84 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#50 0x00005618b38ddf3e in ()
#51 0x00007f6fa9afab97 in __libc_start_main (main=0x5618b38db760, argc=1, argv=0x7ffe5992b608, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffe5992b5f8) at ../csu/libc-start.c:310
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, 7306974803453696498, 94664091636432, 140730401207808, 0, 0, 3939034383248677362, 4001908538810587634}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7f6fad918733 <_dl_init+259>, 0x7f6fad8d6538}, data = {prev = 0x0, cleanup = 0x0, canceltype = -1382971597}}}
not_first_call = <optimized out>
#52 0x00005618b38e12fa in _start ()
gdb returned 0

qgiscrash.zip - Project which will crash qgis when opening print layout (16.7 KB) Dennis Real, 2019-02-05 07:43 PM

History

#1 Updated by Giovanni Manghi about 5 years ago

  • Operating System deleted (Ubuntu 18.04.1 LTS)
  • Priority changed from Normal to High
  • Category changed from Unknown to Map Composer/Printing

confirmed here also on Windows.

#2 Updated by Dennis Real about 5 years ago

Note: Bug still reproduceable in QGIS-Version 3.6.0-Noosa

QGIS-Codeversion 5873452
Kompiliert gegen Qt 5.9.5
Laufendes Qt 5.9.5
Kompiliert mit GDAL/OGR 2.2.3
Läuft mit GDAL/OGR 2.2.3
Kompiliert mit GEOS 3.6.2-CAPI-1.10.2
Läuft mit GEOS 3.6.2-CAPI-1.10.2 4d2925d6
PostgreSQL-Client-Version 10.6 (Ubuntu 10.6-0ubuntu0.18.04.1)
SpatiaLite-Version 4.3.0a
QWT-Version 6.1.3
QScintilla2-Version 2.10.2
PROJ.4-Version 493

#3 Updated by Giovanni Manghi about 5 years ago

  • Affected QGIS version changed from 3.4.4 to 3.6.0

Also available in: Atom PDF