Bug report #16623

regression: exporting atlas as image crashes QGIS

Added by Mathieu Pellerin - nIRV over 4 years ago. Updated over 4 years ago.

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

Description

Under QGIS master, attempting to export an atlas as a set of images crashes QGIS. The crash occurs prior to displaying the "pick a directory" dialog.

Steps to reproduce
  1. Open an atlas-enabled project, and open its composer
  2. Export the atlas-enabled composer as image
  3. boom

gdb where output

#0  0x00007ffff49af124 in QLayout::parentWidget() const () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#1  0x00007ffff49b008c in QLayout::addChildWidget(QWidget*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#2  0x00007ffff49b01ff in QLayout::addWidget(QWidget*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#3  0x00007ffff757311c in QgsComposer::exportCompositionAsImage(QgsComposer::OutputMode) (this=0x555556210630, mode=QgsComposer::Atlas) at /home/webmaster/dev/cpp/QGIS/src/app/composer/qgscomposer.cpp:2164
#4  0x00007ffff7570595 in QgsComposer::on_mActionExportAtlasAsImage_triggered() (this=0x555556210630) at /home/webmaster/dev/cpp/QGIS/src/app/composer/qgscomposer.cpp:1911
#5  0x00007ffff773bd52 in QgsComposer::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x555556210630, _c=QMetaObject::InvokeMetaMethod, _id=82, _a=0x7fffffffb230)
    at /home/webmaster/dev/cpp/QGIS/bm-qt5/src/app/composer/moc_qgscomposer.cpp:688
#6  0x00007ffff773c334 in QgsComposer::qt_metacall(QMetaObject::Call, int, void**) (this=0x555556210630, _c=QMetaObject::InvokeMetaMethod, _id=82, _a=0x7fffffffb230)
    at /home/webmaster/dev/cpp/QGIS/bm-qt5/src/app/composer/moc_qgscomposer.cpp:785
#7  0x00007ffff3ce1644 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007ffff4986992 in QAction::triggered(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007ffff4989380 in QAction::activate(QAction::ActionEvent) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff4af89ba in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff4b00044 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff4b01016 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff49d4a78 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff4b03343 in QMenu::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff498d35c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff49959cd in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff55c7691 in QgsApplication::notify(QObject*, QEvent*) (this=0x7fffffffda10, receiver=0x555555b555e0, event=0x7fffffffb900) at /home/webmaster/dev/cpp/QGIS/src/core/qgsapplication.cpp:295
#18 0x00007ffff3cb58a0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff499407d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff49ef506 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff49f1b03 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff498d35c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff4994b11 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff55c7691 in QgsApplication::notify(QObject*, QEvent*) (this=0x7fffffffda10, receiver=0x5555598849e0, event=0x7fffffffbda0) at /home/webmaster/dev/cpp/QGIS/src/core/qgsapplication.cpp:295
#25 0x00007ffff3cb58a0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff41f9723 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#27 0x00007ffff41fb2a5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#28 0x00007ffff41d923b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#29 0x00007fffd1be4830 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#30 0x00007fffea1f0377 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffea1f05e0 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffea1f068c in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff3d09f0f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff3cb388a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x00007ffff4afdb0d in QMenu::exec(QPoint const&, QAction*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff4b427a5 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007ffff3ce14a9 in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007ffff4a75f17 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff4a765e1 in QAbstractButton::mousePressEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff4b4349f in QToolButton::mousePressEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff49d53ef in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff4b43749 in QToolButton::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007ffff498d35c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007ffff49959cd in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007ffff55c7691 in QgsApplication::notify(QObject*, QEvent*) (this=0x7fffffffda10, receiver=0x555556117dd0, event=0x7fffffffc950) at /home/webmaster/dev/cpp/QGIS/src/core/qgsapplication.cpp:295
#46 0x00007ffff3cb58a0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#47 0x00007ffff499407d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007ffff49ef0f6 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff49f1b03 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff498d35c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007ffff4994b11 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007ffff55c7691 in QgsApplication::notify(QObject*, QEvent*) (this=0x7fffffffda10, receiver=0x555556064600, event=0x7fffffffcdf0) at /home/webmaster/dev/cpp/QGIS/src/core/qgsapplication.cpp:295
#53 0x00007ffff3cb58a0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

Associated revisions

Revision e0cad1fb
Added by Mathieu Pellerin - nIRV over 4 years ago

[composer] fix export atlas as image crash (fixes #16623)

History

#1 Updated by Mathieu Pellerin - nIRV over 4 years ago

  • % Done changed from 0 to 100
  • Status changed from Open to Closed

Also available in: Atom PDF