Bug report #8438

WMT-S Crashes when loading layer

Added by Jeremy Palmer over 6 years ago. Updated over 5 years ago.

Status:Closed
Priority:High
Assignee:Jürgen Fischer
Category:Web Services clients/WMS
Affected QGIS version:master Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:worksforme
Crashes QGIS or corrupts data:Yes Copied to github as #:17207

Description

Crashes on both Ubuntu 12.04 and windows 7 running master build (2087de1). I tried giving the app a quick debug but it looked to be memory corruption from a deep and dark place in the apps internals.

I have attached both the ubuntu and windows dumps from the crash.

You will find the URL to the WMT-S within the ubuntu log.

qgis-20130810-110422-2464-3436-2087de1.7z - Win7 crash dump (4.21 MB) Jeremy Palmer, 2013-08-09 04:14 PM

ubuntu_1204_crash.txt.7z - Ubuntu 12.04 crash/debug log (14 KB) Jeremy Palmer, 2013-08-10 01:49 PM


Related issues

Duplicated by QGIS Application - Bug report #8634: QGis crashes on adding WMTS layer Closed 2013-09-20

History

#1 Updated by Giovanni Manghi over 6 years ago

  • Status changed from Open to Feedback

#2 Updated by Jeremy Palmer over 6 years ago

I'm definitely still getting a crash. I'm using qgis ubuntugis nightly builds for precise as well as a built from source.

I've noticed the crash doesn't occur if the map canvas size is small. Try ensuring that your map canvas is at least 850x750. I tried 750x640 and it didn't crash, so maybe that's why it didn't crash for you.? Because it is memory corruption and related to the allocation of QImage this makes sense.

I'm running QT 4.8.1 as well if that helps.

#4 Updated by Jeremy Palmer over 6 years ago

  • File deleted (ubuntu_1204_crash.txt.7z)

#5 Updated by Giovanni Manghi over 6 years ago

With the new url in #8438-1 I also get the crash.

#6 Updated by Jeremy Palmer about 6 years ago

ANy chance to get this looked at before 2.0 is released. Would be a pity that QGIS is released with WMT-S that crashes.

#7 Updated by Salvatore Larosa about 6 years ago

I don't see any crash here (debian with latest master), should I follow any particular procedure to get the crash or simply loading a layer is enough ?

#8 Updated by Jeremy Palmer about 6 years ago

Try ensuring that your map canvas size is at least 850x750

#9 Updated by Salvatore Larosa about 6 years ago

  • Operating System deleted (windows ubuntu)

ok, I hadn't read your note-2 above, so crash confirmed here!

#10 Updated by Jeremy Palmer about 6 years ago

I can confirm this crash only seems to happen on layers that span the anti-meridian line. Could it be that the render process can't handle multiple wraps?

#11 Updated by Salvatore Larosa about 6 years ago

More info:

The crash here occurs by using any WMS/WMS-T on my laptop following the below steps:
  • add WMS and close the add WMS dialog
  • CTRL+F (Full screen)

and disabling the back buffer option the crash disappears on my linux machine!

#12 Updated by Jeremy Palmer about 6 years ago

I managed to get it to crash with the back buffer disabled.

#13 Updated by Salvatore Larosa about 6 years ago

Jeremy Palmer wrote:

I managed to get it to crash with the back buffer disabled.

strange, enabling back buffer I get:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff2a2beb0 in QRegion::operator=(QRegion const&) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
(gdb) bt
#0  0x00007ffff2a2beb0 in QRegion::operator=(QRegion const&) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#1  0x00007ffff28e6b7f in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
    () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#2  0x00007ffff28e75cf in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#3  0x00007ffff28e6665 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
    () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#4  0x00007ffff28e75cf in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#5  0x00007ffff28e6665 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)
    () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#6  0x00007ffff28e75cf in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#7  0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#8  0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#9  0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#10 0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#12 0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#13 0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#14 0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#15 0x00007ffff28e7414 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#16 0x00007ffff28e6665 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*)

it looks like a Qt problem.

Works fine with back buffer disabled!

#14 Updated by Giovanni Manghi about 6 years ago

see also #8634

#15 Updated by Giovanni Manghi almost 6 years ago

  • Target version changed from Version 2.0.0 to Future Release - High Priority
  • Status changed from Feedback to Open

#16 Updated by Jürgen Fischer over 5 years ago

  • Status changed from Open to Feedback

Is this still an issue?

#17 Updated by Jeremy Palmer over 5 years ago

No it does not seem to be. Did lots of testing today and I can't get QGIS crash anymore. However I will do more testing tomorrow on a larger screen size just to be sure.

#18 Updated by Jeremy Palmer over 5 years ago

Hi Jürgen this can be closed now. It's no longer a problem in master.

#19 Updated by Jürgen Fischer over 5 years ago

  • Status changed from Feedback to Closed
  • Resolution set to worksforme

Also available in: Atom PDF