[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#987886: krita: Right-clicking on the canvas crashes krita



> I tried to reproduce this issue inside a virtual machine.
> But there the menu opens without the issue.

I can reliably reproduce this in Debian Bullseye; it appears like the
environment variable QT_SCALE_FACTOR needs to be set to a non-integer value 
(which is supported!) for the crash to happen. By default I'm using 
QT_SCALE_FACTOR=1.7 and it crashes — it doesn't crash with QT_SCALE_FACTOR=1 
or QT_SCALE_FACTOR=2.

Testing inside a Sid+Experimental chroot, version 5.0.0~beta1+dfsg-1 
from experimental seems not affected.

> Does this happen to you if you startup without the wacom input attached?

It happens with only a keyboard and a mouse as input devices attached.

> Does the KCrash window open or do you have the
> sad smiley at the bottom right near the clock?

It just crashes without any dialog, even with MALLOC_CHECK_=3 and
I'm afraid I don't know which smiley or clock you're referring to.
Before right-clicking and crashing the console log already shows a bunch of 
warnings like these, which might or might not be related to the crash:

  QImage::setPixel: coordinate (132,166) out of range
  QImage::setPixel: coordinate (133,166) out of range
  QImage::setPixel: coordinate (134,166) out of range
  QImage::setPixel: coordinate (135,166) out of range
  QImage::setPixel: coordinate (136,166) out of range

To get more info I ran krita in gdb, with 

  set args --new-image RGBA,U8,1600,1600
  set environment MALLOC_CHECK_ 3
  set environment QT_SCALE_FACTOR 1.7
  run

On right click, gdb first showed the following:

  Thread 1 "krita" received signal SIGABRT, Aborted.
  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
  50  ../sysdeps/unix/sysv/linux/raise.c: file or directory not found

Then I requested the backtrace, whose entirety can be found a few lines below.
I hope this helps in locating and fixing the issue (and backporting the fix to 
Bullseye). If you need any more information or something tested I'd be happy 
to help.

Cheers
Nils König

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff4529537 in __GI_abort () at abort.c:79
#2  0x00007ffff4582768 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff4690e2d "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007ffff4589a5a in malloc_printerr (str=str@entry=0x7ffff468f05a "free(): invalid pointer") at malloc.c:5347
#4  0x00007ffff458bca6 in free_check (mem=0x7fffbafeb010, caller=<optimized out>) at hooks.c:255
#5  0x00007ffff4f84e25 in QImageData::~QImageData() () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#6  0x00007ffff4f85308 in QImage::~QImage() () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#7  0x00007ffff3db45e8 in KoTriangleColorSelector::generateTriangle() () from /lib/x86_64-linux-gnu/libkritawidgets.so.20
#8  0x00007ffff3db4a35 in KoTriangleColorSelector::paintEvent(QPaintEvent*) () from /lib/x86_64-linux-gnu/libkritawidgets.so.20
#9  0x00007ffff565ffae in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007ffff562015f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007ffff70d37c9 in KisApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libkritaui.so.20
#12 0x00007ffff4b5dfca in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ffff5658116 in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007ffff5658962 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff5659ad2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff5659ad2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff5659ad2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff5659ad2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff5659ad2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff5659ad2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff5659ad2 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff565d045 in QWidgetPrivate::render(QPaintDevice*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff565d544 in QWidget::render(QPainter*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff565d907 in QWidget::render(QPaintDevice*, QPoint const&, QRegion const&, QFlags<QWidget::RenderFlag>) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff565db39 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff59aacf2 in QGraphicsEffectSource::pixmap(Qt::CoordinateSystem, QPoint*, QGraphicsEffect::PixmapPadMode) const () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff59aae99 in QGraphicsEffect::sourcePixmap(Qt::CoordinateSystem, QPoint*, QGraphicsEffect::PixmapPadMode) const () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff59ab4e4 in QGraphicsOpacityEffect::draw(QPainter*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007ffff5659373 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007ffff5659cb3 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007ffff565867c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff563086a in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007ffff56606d7 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007ffff5d14b49 in KXmlGuiWindow::event(QEvent*) () from /lib/x86_64-linux-gnu/libkritawidgetutils.so.20
#53 0x00007ffff562015f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007ffff70d37c9 in KisApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libkritaui.so.20
#55 0x00007ffff4b5dfca in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#56 0x00007ffff4b60a01 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007ffff4bb5e93 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#58 0x00007ffff2119e6b in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 0x00007ffff211a118 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#60 0x00007ffff211a1cf in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#61 0x00007ffff4bb551f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#62 0x00007ffff4b5c98b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#63 0x00007ffff4b64c00 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#64 0x0000555555e27741 in main ()
#65 0x00007ffff452ad0a in __libc_start_main (main=0x555555e26100 <main>, argc=3, argv=0x7fffffffe098, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe088) at ../csu/libc-start.c:308
#66 0x0000555555e2899a in ?? ()


Reply to: