Bug 412361 - Crash when moving a file layer that had a transform mask attached. [gdb backtrace]
Summary: Crash when moving a file layer that had a transform mask attached. [gdb backt...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Tools/Transform (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-26 13:35 UTC by wolthera
Modified: 2019-11-20 11:30 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wolthera 2019-09-26 13:35:57 UTC
SUMMARY
In an attempt to reproduce https://bugs.kde.org/show_bug.cgi?id=410163 I got this crash.

STEPS TO REPRODUCE
1. Make a file layer
2. Attach a transform mask
3. With transform mask selected, move the file layer.
4. Now select the file layer itself.
5. Move it around a couple of times.

OBSERVED RESULT
Eventually it will crash.

EXPECTED RESULT
That the file layer and the mask get moved somehow. I was trying to see if I could reproduce the outine bug, didn't expect a crash at all.
Krita

 Version: 4.3.0-prealpha (git 664e1ad)
 Languages: en_US, en_GB, nl
 Hidpi: true

Qt

  Version (compiled): 5.12.3
  Version (loaded): 5.12.3

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 4.15.0-64-generic
  Pretty Productname: KDE neon User Edition 5.16
  Product Type: neon
  Product Version: 18.04

GDB Backtrace
---------------------------------------------

Thread 97 "Thread (pooled)" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff8d108700 (LWP 30289)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) thread apply all backtrace

Thread 102 (Thread 0x7fff8c907700 (LWP 30294)):
#0  0x00007fffea114ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, 
    reltime=0x7fff8c906ba0, expected=0, futex_word=0x608000a02c74)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fff8c906c60, mutex=0x608000a02c20, 
    cond=0x608000a02c48) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x608000a02c48, mutex=0x608000a02c20, 
    abstime=0x7fff8c906c60) at pthread_cond_wait.c:667
#3  0x00007fffeb172d36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffeb173096 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb170740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffea10e6db in start_thread (arg=0x7fff8c907700) at pthread_create.c:463
#8  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 101 (Thread 0x7fff8d909700 (LWP 30293)):
#0  0x00007fffea114ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, 
    reltime=0x7fff8d908ba0, expected=0, futex_word=0x608000a02b74)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fff8d908c60, mutex=0x608000a02b20, 
    cond=0x608000a02b48) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x608000a02b48, mutex=0x608000a02b20, 
    abstime=0x7fff8d908c60) at pthread_cond_wait.c:667
#3  0x00007fffeb172d36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffeb173096 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb170740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#6  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffea10e6db in start_thread (arg=0x7fff8d909700) at pthread_create.c:463
#8  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 100 (Thread 0x7fff9c18f700 (LWP 30292)):
#0  0x00007fffea114ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, 
    reltime=0x7fff9c18eba0, expected=0, futex_word=0x608000a02a70)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fff9c18ec60, mutex=0x608000a02a20, 
    cond=0x608000a02a48) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x608000a02a48, mutex=0x608000a02a20, 
    abstime=0x7fff9c18ec60) at pthread_cond_wait.c:667
#3  0x00007fffeb172d36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffeb173096 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb170740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffea10e6db in start_thread (arg=0x7fff9c18f700) at pthread_create.c:463
#8  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 99 (Thread 0x7fff9d201700 (LWP 30291)):
#0  QRect::x (this=0x7fff9d1ffb70) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrect.h:215
#1  0x00007fffee1b9b86 in KisPerspectiveTransformWorker::runPartialDst (
    this=0x6120005e3840, srcDev=..., dstDev=..., dstRect=...)
    at /home/wolthera/krita/src/libs/image/kis_perspectivetransform_worker.cpp:168

#2  0x00007fffedc38f49 in KisTransformMask::decorateRect (this=0x60800040d720, src=..., 
    dst=..., rc=..., maskPos=KisNode::N_ABOVE_FILTHY)
    at /home/wolthera/krita/src/libs/image/kis_transform_mask.cpp:262
#3  0x00007fffeddf71bd in KisMask::mergeInMaskInternal (this=0x60800040d720, 
    projection=..., effectiveSelection=..., applyRect=..., preparedNeedRect=..., 
---Type <return> to continue, or q <return> to quit---
    maskPos=KisNode::N_ABOVE_FILTHY) at /home/wolthera/krita/src/libs/image/kis_mask.cc:351
#4  0x00007fffeddf67e7 in KisMask::apply (this=0x60800040d720, projection=..., 
    applyRect=..., needRect=..., maskPos=KisNode::N_ABOVE_FILTHY)
    at /home/wolthera/krita/src/libs/image/kis_mask.cc:329
#5  0x00007fffedd87400 in KisLayer::applyMasks (this=0x60b002c03b60, source=..., 
    destination=..., requestedRect=..., filthyNode=..., lastNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer.cc:716
#6  0x00007fffedd88734 in KisLayer::updateProjection (this=0x60b002c03b60, rect=..., 
    filthyNode=...) at /home/wolthera/krita/src/libs/image/kis_layer.cc:746
#7  0x00007fffedd9d35d in KisLayerProjectionPlane::recalculate (this=0x602000152f90, 
    rect=..., filthyNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer_projection_plane.cpp:47
#8  0x00007fffedc70248 in KisAsyncMerger::startMerge (this=0x60c003b0e348, walker=..., 
    notifyClones=true) at /home/wolthera/krita/src/libs/image/kis_async_merger.cpp:248
#9  0x00007fffee326b88 in KisUpdateJobItem::runMergeJob (this=0x60c003b0e300)
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:118
#10 0x00007fffee32679e in KisUpdateJobItem::run (this=0x60c003b0e300)
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:86
#11 0x00007fffeb1703e2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007fffea10e6db in start_thread (arg=0x7fff9d201700) at pthread_create.c:463
#14 0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 98 (Thread 0x7fff9da02700 (LWP 30290)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007fffea772801 in __GI_abort () at abort.c:79
#2  0x00007fffeb147f2b in QMessageLogger::fatal(char const*, ...) const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fffeb147721 in qt_assert(char const*, char const*, int) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffee0dffc4 in KisPaintDevice::Private::prepareClone (this=0x60d0006f6d80, 
    src=...) at /home/wolthera/krita/src/libs/image/kis_paint_device.cc:195
#5  0x00007fffee0c9152 in KisPaintDevice::prepareClone (this=0x60400168f1d0, src=...)
    at /home/wolthera/krita/src/libs/image/kis_paint_device.cc:1069
#6  0x00007fffeddfbfb5 in KisCachedPaintDevice::getDevice (this=0x6070007a7458, 
    prototype=...) at /home/wolthera/krita/src/libs/image/kis_cached_paint_device.h:36
#7  0x00007fffeddf6e17 in KisMask::mergeInMaskInternal (this=0x60800040d720, 
    projection=..., effectiveSelection=..., applyRect=..., preparedNeedRect=..., 
    maskPos=KisNode::N_ABOVE_FILTHY) at /home/wolthera/krita/src/libs/image/kis_mask.cc:339
#8  0x00007fffeddf67e7 in KisMask::apply (this=0x60800040d720, projection=..., 
    applyRect=..., needRect=..., maskPos=KisNode::N_ABOVE_FILTHY)
    at /home/wolthera/krita/src/libs/image/kis_mask.cc:329
#9  0x00007fffedd87400 in KisLayer::applyMasks (this=0x60b002c03b60, source=..., 
    destination=..., requestedRect=..., filthyNode=..., lastNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer.cc:716
#10 0x00007fffedd88734 in KisLayer::updateProjection (this=0x60b002c03b60, rect=..., 
    filthyNode=...) at /home/wolthera/krita/src/libs/image/kis_layer.cc:746
#11 0x00007fffedd9d35d in KisLayerProjectionPlane::recalculate (this=0x602000152f90, 
    rect=..., filthyNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer_projection_plane.cpp:47
#12 0x00007fffedc70248 in KisAsyncMerger::startMerge (this=0x60c003b0e588, walker=..., 
    notifyClones=true) at /home/wolthera/krita/src/libs/image/kis_async_merger.cpp:248
#13 0x00007fffee326b88 in KisUpdateJobItem::runMergeJob (this=0x60c003b0e540)
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:118
#14 0x00007fffee32679e in KisUpdateJobItem::run (this=0x60c003b0e540)
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:86
#15 0x00007fffeb1703e2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#17 0x00007fffea10e6db in start_thread (arg=0x7fff9da02700) at pthread_create.c:463
#18 0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 97 (Thread 0x7fff8d108700 (LWP 30289)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007fffea772801 in __GI_abort () at abort.c:79
#2  0x00007fffeb147f2b in QMessageLogger::fatal(char const*, ...) const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fffeb147721 in qt_assert(char const*, char const*, int) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffee0dffc4 in KisPaintDevice::Private::prepareClone (this=0x60d000673520, 
    src=...) at /home/wolthera/krita/src/libs/image/kis_paint_device.cc:195
#5  0x00007fffee0c9152 in KisPaintDevice::prepareClone (this=0x604000aeaa90, src=...)
    at /home/wolthera/krita/src/libs/image/kis_paint_device.cc:1069
#6  0x00007fffeddfbfb5 in KisCachedPaintDevice::getDevice (this=0x6070007a7458, 
    prototype=...) at /home/wolthera/krita/src/libs/image/kis_cached_paint_device.h:36
#7  0x00007fffeddf6e17 in KisMask::mergeInMaskInternal (this=0x60800040d720, 
    projection=..., effectiveSelection=..., applyRect=..., preparedNeedRect=..., 
    maskPos=KisNode::N_ABOVE_FILTHY) at /home/wolthera/krita/src/libs/image/kis_mask.cc:339
#8  0x00007fffeddf67e7 in KisMask::apply (this=0x60800040d720, projection=..., 
    applyRect=..., needRect=..., maskPos=KisNode::N_ABOVE_FILTHY)
    at /home/wolthera/krita/src/libs/image/kis_mask.cc:329
#9  0x00007fffedd87400 in KisLayer::applyMasks (this=0x60b002c03b60, source=..., 
    destination=..., requestedRect=..., filthyNode=..., lastNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer.cc:716
#10 0x00007fffedd88734 in KisLayer::updateProjection (this=0x60b002c03b60, rect=..., 
    filthyNode=...) at /home/wolthera/krita/src/libs/image/kis_layer.cc:746
#11 0x00007fffedd9d35d in KisLayerProjectionPlane::recalculate (this=0x602000152f90, 
    rect=..., filthyNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer_projection_plane.cpp:47
#12 0x00007fffedc70248 in KisAsyncMerger::startMerge (this=0x60c003b0e708, walker=..., 
---Type <return> to continue, or q <return> to quit---
    notifyClones=true) at /home/wolthera/krita/src/libs/image/kis_async_merger.cpp:248
#13 0x00007fffee326b88 in KisUpdateJobItem::runMergeJob (this=0x60c003b0e6c0)
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:118
#14 0x00007fffee32679e in KisUpdateJobItem::run (this=0x60c003b0e6c0)
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:86
#15 0x00007fffeb1703e2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007fffea10e6db in start_thread (arg=0x7fff8d108700) at pthread_create.c:463
#18 0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 96 (Thread 0x7fff9b98e700 (LWP 30288)):
#0  0x00007fffea114ed9 in futex_reltimed_wait_cancelable (private=<optimized out>, 
    reltime=0x7fff9b98dba0, expected=0, futex_word=0x608000a02674)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:142
#1  __pthread_cond_wait_common (abstime=0x7fff9b98dc60, mutex=0x608000a02620, 
    cond=0x608000a02648) at pthread_cond_wait.c:533
#2  __pthread_cond_timedwait (cond=0x608000a02648, mutex=0x608000a02620, 
    abstime=0x7fff9b98dc60) at pthread_cond_wait.c:667
#3  0x00007fffeb172d36 in QWaitCondition::wait(QMutex*, QDeadlineTimer) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffeb173096 in QWaitCondition::wait(QMutex*, unsigned long) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb170740 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffea10e6db in start_thread (arg=0x7fff9b98e700) at pthread_create.c:463
#8  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 95 (Thread 0x7fff8b09a700 (LWP 30287)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
---Type <return> to continue, or q <return> to quit---
#1  0x00007fffea772801 in __GI_abort () at abort.c:79
#2  0x00007fffeb147f2b in QMessageLogger::fatal(char const*, ...) const ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fffeb147721 in qt_assert(char const*, char const*, int) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffee0dffc4 in KisPaintDevice::Private::prepareClone (this=0x60d0006c1930, 
    src=...) at /home/wolthera/krita/src/libs/image/kis_paint_device.cc:195
#5  0x00007fffee0c9152 in KisPaintDevice::prepareClone (this=0x604001696850, src=...)
    at /home/wolthera/krita/src/libs/image/kis_paint_device.cc:1069
#6  0x00007fffeddfbfb5 in KisCachedPaintDevice::getDevice (this=0x6070007a7458, 
    prototype=...) at /home/wolthera/krita/src/libs/image/kis_cached_paint_device.h:36
#7  0x00007fffeddf6e17 in KisMask::mergeInMaskInternal (this=0x60800040d720, 
    projection=..., effectiveSelection=..., applyRect=..., preparedNeedRect=..., 
    maskPos=KisNode::N_ABOVE_FILTHY) at /home/wolthera/krita/src/libs/image/kis_mask.cc:339
#8  0x00007fffeddf67e7 in KisMask::apply (this=0x60800040d720, projection=..., 
    applyRect=..., needRect=..., maskPos=KisNode::N_ABOVE_FILTHY)
    at /home/wolthera/krita/src/libs/image/kis_mask.cc:329
#9  0x00007fffedd87400 in KisLayer::applyMasks (this=0x60b002c03b60, source=..., 
    destination=..., requestedRect=..., filthyNode=..., lastNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer.cc:716
#10 0x00007fffedd88734 in KisLayer::updateProjection (this=0x60b002c03b60, rect=..., 
    filthyNode=...) at /home/wolthera/krita/src/libs/image/kis_layer.cc:746
#11 0x00007fffedd9d35d in KisLayerProjectionPlane::recalculate (this=0x602000152f90, 
    rect=..., filthyNode=...)
    at /home/wolthera/krita/src/libs/image/kis_layer_projection_plane.cpp:47
#12 0x00007fffedc70248 in KisAsyncMerger::startMerge (this=0x60c003b0f008, walker=..., 
    notifyClones=true) at /home/wolthera/krita/src/libs/image/kis_async_merger.cpp:248
#13 0x00007fffee326b88 in KisUpdateJobItem::runMergeJob (this=0x60c003b0efc0)
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:118
#14 0x00007fffee32679e in KisUpdateJobItem::run (this=0x60c003b0efc0)
---Type <return> to continue, or q <return> to quit---
    at /home/wolthera/krita/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../src/libs/image/kis_update_job_item.h:86
#15 0x00007fffeb1703e2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007fffea10e6db in start_thread (arg=0x7fff8b09a700) at pthread_create.c:463
#18 0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 16 (Thread 0x7fff8b89b700 (LWP 29483)):
#0  0x00007fffea846bf9 in __GI___poll (fds=0x60200031fcb0, nfds=2, timeout=135023)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6e55701 in poll () from /usr/lib/x86_64-linux-gnu/libasan.so.4
#2  0x00007fffe11105c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffe11106dc in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fffeb3a1daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb34303a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16a4ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fffea10e6db in start_thread (arg=0x7fff8b89b700) at pthread_create.c:463
#9  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 15 (Thread 0x7fff9ebe7700 (LWP 29454)):
#0  0x00007fffea846bf9 in __GI___poll (fds=0x602000010a50, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6e55701 in poll () from /usr/lib/x86_64-linux-gnu/libasan.so.4
#2  0x00007fffe11105c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffe11106dc in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fffeb3a1daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEvent---Type <return> to continue, or q <return> to quit---
sFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb34303a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16a4ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffca45a926 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#8  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007fffea10e6db in start_thread (arg=0x7fff9ebe7700) at pthread_create.c:463
#10 0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 14 (Thread 0x7fffa23eb700 (LWP 29445)):
#0  0x00007fffea846bf9 in __GI___poll (fds=0x602000027930, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6e55701 in poll () from /usr/lib/x86_64-linux-gnu/libasan.so.4
#2  0x00007fffe11105c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffe11106dc in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fffeb3a1daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb34303a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16a4ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffc9f94f05 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007fffea10e6db in start_thread (arg=0x7fffa23eb700) at pthread_create.c:463
#10 0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 13 (Thread 0x7fffa1bea700 (LWP 29416)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fffeb16e630 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007fffeb16e4a2 in QSemaphore::tryAcquire(int, int) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#3  0x00007fffed9130c9 in KisTileDataSwapper::waitForWork (
    this=0x7fffeeba8300 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>) at /home/wolthera/krita/src/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007fffed9130e4 in KisTileDataSwapper::run (
    this=0x7fffeeba8300 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>) at /home/wolthera/krita/src/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffea10e6db in start_thread (arg=0x7fffa1bea700) at pthread_create.c:463
#7  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7fff95000700 (LWP 29406)):
#0  0x00007fffea846bf9 in __GI___poll (fds=0x602000356710, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6e55701 in poll () from /usr/lib/x86_64-linux-gnu/libasan.so.4
#2  0x00007fffe11105c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fffe11106dc in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fffeb3a1daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb34303a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16a4ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fffea10e6db in start_thread (arg=0x7fff95000700) at pthread_create.c:463
#9  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fffc4e09700 (LWP 29121)):
#0  0x00007fffea846bf9 in __GI___poll (fds=0x603002092cf0, nfds=4, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6e55701 in poll () from /usr/lib/x86_64-linux-gnu/libasan.so.4
#2  0x00007fffe11105c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#3  0x00007fffe11106dc in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fffeb3a1daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffeb34303a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffeb16a4ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffe2818015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#8  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007fffea10e6db in start_thread (arg=0x7fffc4e09700) at pthread_create.c:463
#10 0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fffd3acc700 (LWP 29117)):
#0  0x00007fffea1149f3 in futex_wait_cancelable (private=<optimized out>, expected=0, 
    futex_word=0x614000004d08) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x614000004cb8, cond=0x614000004ce0)
    at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x614000004ce0, mutex=0x614000004cb8)
    at pthread_cond_wait.c:655
#3  0x00007fffd08fd23b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fffd08fcf67 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fffea10e6db in start_thread (arg=0x7fffd3acc700) at pthread_create.c:463
#6  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7fffcf703700 (LWP 29112)):
#0  0x00007fffea846bf9 in __GI___poll (fds=0x7fffcf702c68, nfds=1, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007ffff6e55701 in poll () from /usr/lib/x86_64-linux-gnu/libasan.so.4
#2  0x00007fffe036b747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffe036d36a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#4  0x00007fffd6681578 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
---Type <return> to continue, or q <return> to quit---
#5  0x00007fffeb16bc72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffea10e6db in start_thread (arg=0x7fffcf703700) at pthread_create.c:463
#7  0x00007fffea85388f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7f8ce80 (LWP 28945)):
#0  0x00007fffd087da76 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#1  0x00007fffd087e13f in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#2  0x00007fffd0853b48 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#3  0x00007fffd0a966c8 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fffd0a96765 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007ffff1f11494 in QOpenGLFunctions::glDrawArrays (this=0x6070004a0320, mode=4, 
    first=0, count=6) at /usr/include/x86_64-linux-gnu/qt5/QtGui/qopenglfunctions.h:767

#6  0x00007ffff1f0df67 in KisOpenGLCanvas2::drawImage (this=0x6070004a02f0)
    at /home/wolthera/krita/src/libs/ui/opengl/kis_opengl_canvas2.cpp:863
#7  0x00007ffff1f0f846 in KisOpenGLCanvas2::renderCanvasGL (this=0x6070004a02f0)
    at /home/wolthera/krita/src/libs/ui/opengl/kis_opengl_canvas2.cpp:961
#8  0x00007ffff1f07943 in KisOpenGLCanvas2::paintGL (this=0x6070004a02f0)
    at /home/wolthera/krita/src/libs/ui/opengl/kis_opengl_canvas2.cpp:406
#9  0x00007fffec1a1b1d in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007fffec1809c8 in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007fffec14065c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fffec147b90 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007ffff2460b0d in KisApplication::notify (this=0x7fffffffda40, 
    receiver=0x6070004a02f0, event=0x7fffffff9c80)
    at /home/wolthera/krita/src/libs/ui/KisApplication.cpp:653
#14 0x00007fffeb344d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007fffec179595 in QWidgetPrivate::sendPaintEvent(QRegion const&) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fffec14fb04 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007fffec1504a5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007fffec1688bf in QWidgetPrivate::syncBackingStore() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fffec180b38 in QWidget::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007fffec289e50 in QMainWindow::event(QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007fffed0c836c in KMainWindow::event (this=0x60c0003bb780, ev=0x603001fc9d20)
    at /home/wolthera/krita/src/libs/widgetutils/xmlgui/kmainwindow.cpp:765
#22 0x00007fffed162a6d in KXmlGuiWindow::event (this=0x60c0003bb780, ev=0x603001fc9d20)
    at /home/wolthera/krita/src/libs/widgetutils/xmlgui/kxmlguiwindow.cpp:125
#23 0x00007fffec14065c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007fffec147b90 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff2460b0d in KisApplication::notify (this=0x7fffffffda40, 
    receiver=0x60c0003bb780, event=0x603001fc9d20)
    at /home/wolthera/krita/src/libs/ui/KisApplication.cpp:653
#26 0x00007fffeb344d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007fffeb3478d7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007fffeb3a2793 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007fffe1110417 in g_main_context_dispatch ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fffe1110650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffe11106dc in g_main_context_iteration ()
   from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffeb3a1daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEvent---Type <return> to continue, or q <return> to quit---
sFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007fffeb34303a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007fffeb34c170 in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x0000555557933431 in main (argc=1, argv=0x7fffffffdbd8)
    at /home/wolthera/krita/src/krita/main.cc:572
(gdb) 
(gdb)
Comment 1 Halla Rempt 2019-09-28 07:49:45 UTC
This is one for dmitry. The assert happens here:

    void prepareClone(KisPaintDeviceSP src)
    {
        prepareCloneImpl(src, src->m_d->currentData());
        Q_ASSERT(fastBitBltPossible(src));
    }
Comment 2 Halla Rempt 2019-09-28 07:50:21 UTC
It's possible the assert is just broken when layers have been moved since it does:

    bool fastBitBltPossibleImpl(Data *srcData)
    {
        return x() == srcData->x() && y() == srcData->y() &&
               *colorSpace() == *srcData->colorSpace();
    }
Comment 3 Dmitry Kazakov 2019-11-19 14:29:06 UTC
The assert is correct, but the entire situation is not :) Moves are usually exclusive, I don't know how it could happen concurrently.
Comment 4 Dmitry Kazakov 2019-11-20 11:29:58 UTC
Git commit b3c150e21993cd63105454aeae73f4b4ec9efb8c by Dmitry Kazakov.
Committed on 20/11/2019 at 11:27.
Pushed by dkazakov into branch 'master'.

Make sure that fake original() of KisFileLayer has defaultBounds() set

Before KisFileLayer loaded its image (or when the image is not
available), file layer uses a fake paint device. This paint device
should also have proper default bounds set.

M  +9    -0    libs/ui/kis_file_layer.cpp
M  +2    -0    libs/ui/kis_file_layer.h

https://invent.kde.org/kde/krita/commit/b3c150e21993cd63105454aeae73f4b4ec9efb8c
Comment 5 Dmitry Kazakov 2019-11-20 11:29:59 UTC
Git commit e57bcfc223f90a74b8b821cc405d5efd232c281c by Dmitry Kazakov.
Committed on 20/11/2019 at 11:27.
Pushed by dkazakov into branch 'master'.

Implement KisDefaultBounds::sourceCookie()

It is needed for debugging/sanity-check purposes only. It returns an
abstract pointer to the source object, where default bounds takes its
data from. One can ckeck if the pointer is null or compare two pointers
of different default bounds objects.

M  +11   -1    libs/image/kis_default_bounds.cpp
M  +2    -0    libs/image/kis_default_bounds.h
M  +13   -0    libs/image/kis_default_bounds_base.h

https://invent.kde.org/kde/krita/commit/e57bcfc223f90a74b8b821cc405d5efd232c281c
Comment 6 Dmitry Kazakov 2019-11-20 11:30:00 UTC
Git commit 4686d100ce0cfcbbf0ccc360eb46e886e5a9b069 by Dmitry Kazakov.
Committed on 20/11/2019 at 11:27.
Pushed by dkazakov into branch 'master'.

Add a bit of debugging capabilities to KisCachedPaintDevice

M  +8    -0    libs/image/kis_cached_paint_device.h

https://invent.kde.org/kde/krita/commit/4686d100ce0cfcbbf0ccc360eb46e886e5a9b069
Comment 7 Dmitry Kazakov 2019-11-20 11:30:00 UTC
Git commit 77c57103e7b9c322ddbe189bda1656afed927508 by Dmitry Kazakov.
Committed on 20/11/2019 at 11:27.
Pushed by dkazakov into branch 'master'.

Fix crash when moving a layer under a transformation mask

When doing KisPaintDevice::prepareClone(), we should first set
new defaultBounds object, and only after that clone the data.
The reason for this: switching defaultBounds can change current
level-of-detail/frameId, and therefore, switch currentData().

M  +10   -4    libs/image/kis_paint_device.cc

https://invent.kde.org/kde/krita/commit/77c57103e7b9c322ddbe189bda1656afed927508