KisLayerTest in hellgrind

Cyrille Berger Skott cberger at cberger.net
Wed Dec 1 11:21:20 CET 2010


Hi,

We have random failure of the KisLayerTest, and I am wondering if it is not 
associated with some of the random crash we have in krita. Following Mark's 
suggestion on IRC I ran helgrind on KisLayerTest (running it on krita is 
impossible), and I get the following errors. I hope someone (ie Dmitry :D) can 
figure out something out of it.

-- 
Cyrille Berger Skott
-------------- next part --------------
==5400== Helgrind, a thread error detector
==5400== Copyright (C) 2007-2010, and GNU GPL'd, by OpenWorks LLP et al.
==5400== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==5400== Command: ./KisLayerTest
==5400== 
********* Start testing of KisLayerTest *********
Config: Using QTest library 4.7.0, Qt 4.7.0
PASS   : KisLayerTest::initTestCase()
==5400== Thread #1 is the program's root thread
==5400== 
==5400== Thread #1: lock order "0x1412C320 before 0x19870B00" violated
==5400==    at 0x4C27BA8: QMutex::tryLock() (hg_intercepts.c:2071)
==5400==    by 0xA1F5CD0: QObject::~QObject() (qorderedmutexlocker_p.h:106)
==5400==    by 0x5506DDC: KisUpdateJobItem::~KisUpdateJobItem() (kis_updater_context.h:29)
==5400==    by 0x55E02AB: KisUpdaterContext::~KisUpdaterContext() (kis_updater_context.cpp:51)
==5400==    by 0x55E8D4E: KisUpdateScheduler::~KisUpdateScheduler() (kis_update_scheduler.cpp:47)
==5400==    by 0x55F89C4: KisImage::~KisImage() (kis_image.cc:178)
==5400==    by 0x40CB70: KisSharedPtr<KisImage>::~KisSharedPtr() (kis_shared_ptr.h:214)
==5400==    by 0x407E17: KisLayerTest::testCreation() (kis_layer_test.cpp:78)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==   Required order was established by acquisition of lock at 0x1412C320
==5400==    at 0x4C27946: QMutex::lock() (hg_intercepts.c:2020)
==5400==    by 0xA1F227D: QMetaObjectPrivate::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:82)
==5400==    by 0xA1F2989: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2590)
==5400==    by 0x55E062B: KisUpdaterContext::KisUpdaterContext(int) (qobject.h:315)
==5400==    by 0x55E9E40: KisUpdateScheduler::KisUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_update_scheduler.cpp:26)
==5400==    by 0x55F59CB: createUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_image.cc:79)
==5400==    by 0x55F8216: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:305)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40733D: KisLayerTest::testCreation() (kis_layer_test.cpp:49)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==   followed by a later acquisition of lock at 0x19870B00
==5400==    at 0x4C27946: QMutex::lock() (hg_intercepts.c:2020)
==5400==    by 0xA1F228C: QMetaObjectPrivate::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:83)
==5400==    by 0xA1F2989: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2590)
==5400==    by 0x55E062B: KisUpdaterContext::KisUpdaterContext(int) (qobject.h:315)
==5400==    by 0x55E9E40: KisUpdateScheduler::KisUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_update_scheduler.cpp:26)
==5400==    by 0x55F59CB: createUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_image.cc:79)
==5400==    by 0x55F8216: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:305)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40733D: KisLayerTest::testCreation() (kis_layer_test.cpp:49)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Thread #1: lock order "0x19870B00 before 0x1412C320" violated
==5400==    at 0x4C27946: QMutex::lock() (hg_intercepts.c:2020)
==5400==    by 0xA1F5D57: QObject::~QObject() (qorderedmutexlocker_p.h:103)
==5400==    by 0x55E8D4E: KisUpdateScheduler::~KisUpdateScheduler() (kis_update_scheduler.cpp:47)
==5400==    by 0x55F89C4: KisImage::~KisImage() (kis_image.cc:178)
==5400==    by 0x40CB70: KisSharedPtr<KisImage>::~KisSharedPtr() (kis_shared_ptr.h:214)
==5400==    by 0x407E17: KisLayerTest::testCreation() (kis_layer_test.cpp:78)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400==   Required order was established by acquisition of lock at 0x19870B00
==5400==    at 0x4C27946: QMutex::lock() (hg_intercepts.c:2020)
==5400==    by 0xA1F5C04: QObject::~QObject() (qmutex.h:102)
==5400==    by 0x5506DDC: KisUpdateJobItem::~KisUpdateJobItem() (kis_updater_context.h:29)
==5400==    by 0x55E02AB: KisUpdaterContext::~KisUpdaterContext() (kis_updater_context.cpp:51)
==5400==    by 0x55E8D4E: KisUpdateScheduler::~KisUpdateScheduler() (kis_update_scheduler.cpp:47)
==5400==    by 0x55F89C4: KisImage::~KisImage() (kis_image.cc:178)
==5400==    by 0x40CB70: KisSharedPtr<KisImage>::~KisSharedPtr() (kis_shared_ptr.h:214)
==5400==    by 0x407E17: KisLayerTest::testCreation() (kis_layer_test.cpp:78)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==   followed by a later acquisition of lock at 0x1412C320
==5400==    at 0x4C27BA8: QMutex::tryLock() (hg_intercepts.c:2071)
==5400==    by 0xA1F5CD0: QObject::~QObject() (qorderedmutexlocker_p.h:106)
==5400==    by 0x5506DDC: KisUpdateJobItem::~KisUpdateJobItem() (kis_updater_context.h:29)
==5400==    by 0x55E02AB: KisUpdaterContext::~KisUpdaterContext() (kis_updater_context.cpp:51)
==5400==    by 0x55E8D4E: KisUpdateScheduler::~KisUpdateScheduler() (kis_update_scheduler.cpp:47)
==5400==    by 0x55F89C4: KisImage::~KisImage() (kis_image.cc:178)
==5400==    by 0x40CB70: KisSharedPtr<KisImage>::~KisSharedPtr() (kis_shared_ptr.h:214)
==5400==    by 0x407E17: KisLayerTest::testCreation() (kis_layer_test.cpp:78)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400== 
PASS   : KisLayerTest::testCreation()
==5400== Thread #1: lock order "0x1412C320 before 0x198774F0" violated
==5400==    at 0x4C27BA8: QMutex::tryLock() (hg_intercepts.c:2071)
==5400==    by 0xA1F5CD0: QObject::~QObject() (qorderedmutexlocker_p.h:106)
==5400==    by 0x55E8D4E: KisUpdateScheduler::~KisUpdateScheduler() (kis_update_scheduler.cpp:47)
==5400==    by 0x55F89C4: KisImage::~KisImage() (kis_image.cc:178)
==5400==    by 0x40CB70: KisSharedPtr<KisImage>::~KisSharedPtr() (kis_shared_ptr.h:214)
==5400==    by 0x407072: KisLayerTest::testOrdering() (kis_layer_test.cpp:163)
==5400==    by 0x40BC53: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:132)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400==   Required order was established by acquisition of lock at 0x1412C320
==5400==    at 0x4C27946: QMutex::lock() (hg_intercepts.c:2020)
==5400==    by 0xA1F227D: QMetaObjectPrivate::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:82)
==5400==    by 0xA1F2989: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2590)
==5400==    by 0x55E9E9E: KisUpdateScheduler::KisUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_update_scheduler.cpp:35)
==5400==    by 0x55F59CB: createUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_image.cc:79)
==5400==    by 0x55F8216: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:305)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40583F: KisLayerTest::testOrdering() (kis_layer_test.cpp:86)
==5400==    by 0x40BC53: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:132)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==   followed by a later acquisition of lock at 0x198774F0
==5400==    at 0x4C27946: QMutex::lock() (hg_intercepts.c:2020)
==5400==    by 0xA1F228C: QMetaObjectPrivate::connect(QObject const*, int, QObject const*, int, int, int*) (qorderedmutexlocker_p.h:83)
==5400==    by 0xA1F2989: QObject::connect(QObject const*, char const*, QObject const*, char const*, Qt::ConnectionType) (qobject.cpp:2590)
==5400==    by 0x55E9E9E: KisUpdateScheduler::KisUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_update_scheduler.cpp:35)
==5400==    by 0x55F59CB: createUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_image.cc:79)
==5400==    by 0x55F8216: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:305)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40583F: KisLayerTest::testOrdering() (kis_layer_test.cpp:86)
==5400==    by 0x40BC53: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:132)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400== 
PASS   : KisLayerTest::testOrdering()
PASS   : KisLayerTest::testMoveNode()
PASS   : KisLayerTest::testMoveLayer()
PASS   : KisLayerTest::testHasEffectMasks()
PASS   : KisLayerTest::testMasksChangeRect()
==5400== Thread #4 was created
==5400==    at 0xB9C0FEE: clone (clone.S:77)
==5400==    by 0xB6DCB23: T.124 (createthread.c:75)
==5400==    by 0xB6DD033: pthread_create@@GLIBC_2.2.5 (createthread.c:249)
==5400==    by 0x4C295BE: pthread_create_WRK (hg_intercepts.c:257)
==5400==    by 0x4C296BE: pthread_create@* (hg_intercepts.c:288)
==5400==    by 0xA0EA861: QThread::start(QThread::Priority) (qthread_unix.cpp:575)
==5400==    by 0xA0DFA82: QThreadPoolPrivate::startThread(QRunnable*) (qthreadpool.cpp:258)
==5400==    by 0xA0DFD42: QThreadPoolPrivate::tryStart(QRunnable*) (qthreadpool.cpp:207)
==5400==    by 0xA0E076D: QThreadPool::start(QRunnable*, int) (qthreadpool.cpp:462)
==5400==    by 0x55E259F: KisUpdaterContext::addJob(KisSharedPtr<KisBaseRectsWalker>) (kis_updater_context.cpp:94)
==5400==    by 0x55E6631: KisSimpleUpdateQueue::processOneJob(KisUpdaterContext&) (kis_simple_update_queue.cpp:89)
==5400==    by 0x55E3817: KisAbstractUpdateQueue::processQueue(KisUpdaterContext&) (kis_abstract_update_queue.cpp:38)
==5400== 
==5400== Possible data race during read of size 4 at 0x1987b3cc by thread #4
==5400==    at 0x562F317: KisPaintDevice::numContiguousRows(int, int, int) const (kis_paint_device.cc:1070)
==5400==    by 0x5545BF7: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:539)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==    by 0x4C29747: mythread_wrapper (hg_intercepts.c:221)
==5400==    by 0xB6DC8B9: start_thread (pthread_create.c:300)
==5400==  This conflicts with a previous write of size 4 by thread #1
==5400==    at 0x562CCE4: KisPaintDevice::setY(int) (kis_paint_device.cc:1086)
==5400==    by 0x560AA80: KisLayer::setY(int) (kis_layer.cc:506)
==5400==    by 0x409807: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:321)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==  Address 0x1987b3cc is 28 bytes inside a block of size 64 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x563139B: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_paint_device.cc:210)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during read of size 4 at 0x1987b3c8 by thread #4
==5400==    at 0x562F31A: KisPaintDevice::numContiguousRows(int, int, int) const (kis_paint_device.cc:1070)
==5400==    by 0x5545BF7: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:539)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==    by 0x4C29747: mythread_wrapper (hg_intercepts.c:221)
==5400==    by 0xB6DC8B9: start_thread (pthread_create.c:300)
==5400==  This conflicts with a previous write of size 4 by thread #1
==5400==    at 0x562CCC4: KisPaintDevice::setX(int) (kis_paint_device.cc:1080)
==5400==    by 0x560AB20: KisLayer::setX(int) (kis_layer.cc:500)
==5400==    by 0x4097D3: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:320)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==  Address 0x1987b3c8 is 24 bytes inside a block of size 64 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x563139B: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_paint_device.cc:210)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Thread #6 was created
==5400==    at 0xB9C0FEE: clone (clone.S:77)
==5400==    by 0xB6DCB23: T.124 (createthread.c:75)
==5400==    by 0xB6DD033: pthread_create@@GLIBC_2.2.5 (createthread.c:249)
==5400==    by 0x4C295BE: pthread_create_WRK (hg_intercepts.c:257)
==5400==    by 0x4C296BE: pthread_create@* (hg_intercepts.c:288)
==5400==    by 0xA0EA861: QThread::start(QThread::Priority) (qthread_unix.cpp:575)
==5400==    by 0xA0DFA82: QThreadPoolPrivate::startThread(QRunnable*) (qthreadpool.cpp:258)
==5400==    by 0xA0DFD42: QThreadPoolPrivate::tryStart(QRunnable*) (qthreadpool.cpp:207)
==5400==    by 0xA0E076D: QThreadPool::start(QRunnable*, int) (qthreadpool.cpp:462)
==5400==    by 0x55E259F: KisUpdaterContext::addJob(KisSharedPtr<KisBaseRectsWalker>) (kis_updater_context.cpp:94)
==5400==    by 0x55E6631: KisSimpleUpdateQueue::processOneJob(KisUpdaterContext&) (kis_simple_update_queue.cpp:89)
==5400==    by 0x55E3817: KisAbstractUpdateQueue::processQueue(KisUpdaterContext&) (kis_abstract_update_queue.cpp:38)
==5400== 
==5400== Thread #7 was created
==5400==    at 0xB9C0FEE: clone (clone.S:77)
==5400==    by 0xB6DCB23: T.124 (createthread.c:75)
==5400==    by 0xB6DD033: pthread_create@@GLIBC_2.2.5 (createthread.c:249)
==5400==    by 0x4C295BE: pthread_create_WRK (hg_intercepts.c:257)
==5400==    by 0x4C296BE: pthread_create@* (hg_intercepts.c:288)
==5400==    by 0xA0EA861: QThread::start(QThread::Priority) (qthread_unix.cpp:575)
==5400==    by 0xA0DFA82: QThreadPoolPrivate::startThread(QRunnable*) (qthreadpool.cpp:258)
==5400==    by 0xA0DFD42: QThreadPoolPrivate::tryStart(QRunnable*) (qthreadpool.cpp:207)
==5400==    by 0xA0E076D: QThreadPool::start(QRunnable*, int) (qthreadpool.cpp:462)
==5400==    by 0x55E259F: KisUpdaterContext::addJob(KisSharedPtr<KisBaseRectsWalker>) (kis_updater_context.cpp:94)
==5400==    by 0x55E6631: KisSimpleUpdateQueue::processOneJob(KisUpdaterContext&) (kis_simple_update_queue.cpp:89)
==5400==    by 0x55E3817: KisAbstractUpdateQueue::processQueue(KisUpdaterContext&) (kis_abstract_update_queue.cpp:38)
==5400== 
==5400== Possible data race during write of size 8 at 0x1404ec48 by thread #6
==5400==    at 0x683B77A: KoColorSpaceRegistry::lab16(KoColorProfile const*) (KoColorSpaceRegistry.cpp:466)
==5400==    by 0x681C496: KoColor::KoColor() (KoColor.cpp:51)
==5400==    by 0x554CC43: KisPainter::Private::Private() (kis_painter.cc:73)
==5400==    by 0x554BB40: KisPainter::KisPainter(KisSharedPtr<KisPaintDevice>) (kis_painter.cc:117)
==5400==    by 0x563BBFD: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:123)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==    by 0x4C29747: mythread_wrapper (hg_intercepts.c:221)
==5400==  This conflicts with a previous write of size 8 by thread #7
==5400==    at 0x683B77A: KoColorSpaceRegistry::lab16(KoColorProfile const*) (KoColorSpaceRegistry.cpp:466)
==5400==    by 0x681C496: KoColor::KoColor() (KoColor.cpp:51)
==5400==    by 0x554CC43: KisPainter::Private::Private() (kis_painter.cc:73)
==5400==    by 0x554BB40: KisPainter::KisPainter(KisSharedPtr<KisPaintDevice>) (kis_painter.cc:117)
==5400==    by 0x563BBFD: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:123)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==  Address 0x1404ec48 is 72 bytes inside a block of size 88 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x6834F37: KoColorSpaceRegistry::KoColorSpaceRegistry() (KoColorSpaceRegistry.cpp:115)
==5400==    by 0x683A43D: KoColorSpaceRegistry::instance() (KoColorSpaceRegistry.cpp:67)
==5400==    by 0x4072B9: KisLayerTest::testCreation() (kis_layer_test.cpp:48)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during write of size 4 at 0x19890d64 by thread #6
==5400==    at 0x5508519: KisTile::lockForRead() const (kis_tile_data.h:108)
==5400==    by 0x5530050: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:52)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5530FCF: KisTiledRandomAccessor::KisTiledRandomAccessor(KisTiledDataManager*, int, int, bool) (kis_tiled_random_accessor.cc:35)
==5400==    by 0x56545B0: KisRandomConstAccessor::KisRandomConstAccessor(KisDataManager*, int, int, int, int) (kis_random_accessor.cpp:49)
==5400==    by 0x5630D35: KisPaintDevice::createRandomConstAccessor(int, int, KisSelection const*) const (kis_random_accessor.h:161)
==5400==    by 0x5545073: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:467)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==  This conflicts with a previous write of size 4 by thread #7
==5400==    at 0x550A2D9: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:108)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545D36: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==  Address 0x19890d64 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x5510AB3: KisTiledDataManager::clear(QRect, unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x562DF0A: KisPaintDevice::fill(QRect const&, KoColor const&) (kis_datamanager.h:193)
==5400==    by 0x40953C: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:309)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during write of size 4 at 0x19890d64 by thread #6
==5400==    at 0x55081A1: KisTile::lockForWrite() (kis_tile_data.h:108)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5530FCF: KisTiledRandomAccessor::KisTiledRandomAccessor(KisTiledDataManager*, int, int, bool) (kis_tiled_random_accessor.cc:35)
==5400==    by 0x5653DCE: KisRandomConstAccessor::KisRandomConstAccessor(KisDataManager*, int, int, int, int, bool) (kis_random_accessor.cpp:42)
==5400==    by 0x56310CC: KisPaintDevice::createRandomAccessor(int, int, KisSelection const*) (kis_random_accessor.h:76)
==5400==    by 0x55450A7: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:468)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==  This conflicts with a previous write of size 4 by thread #7
==5400==    at 0x550A2D9: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:108)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545D36: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==  Address 0x19890d64 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x5510AB3: KisTiledDataManager::clear(QRect, unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x562DF0A: KisPaintDevice::fill(QRect const&, KoColor const&) (kis_datamanager.h:193)
==5400==    by 0x40953C: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:309)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during write of size 4 at 0x19890d64 by thread #6
==5400==    at 0x550A2D9: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:108)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5530FCF: KisTiledRandomAccessor::KisTiledRandomAccessor(KisTiledDataManager*, int, int, bool) (kis_tiled_random_accessor.cc:35)
==5400==    by 0x5653DCE: KisRandomConstAccessor::KisRandomConstAccessor(KisDataManager*, int, int, int, int, bool) (kis_random_accessor.cpp:42)
==5400==    by 0x56310CC: KisPaintDevice::createRandomAccessor(int, int, KisSelection const*) (kis_random_accessor.h:76)
==5400==    by 0x55450A7: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:468)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==  This conflicts with a previous write of size 4 by thread #7
==5400==    at 0x550A2D9: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:108)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545D36: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==  Address 0x19890d64 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x5510AB3: KisTiledDataManager::clear(QRect, unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x562DF0A: KisPaintDevice::fill(QRect const&, KoColor const&) (kis_datamanager.h:193)
==5400==    by 0x40953C: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:309)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during write of size 8 at 0x1980a0b0 by thread #6
==5400==    at 0x550A1A1: KisTileDataStore::registerTileData(KisTileData*) (kis_tile_data_store.cc:87)
==5400==    by 0x550A309: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data_store.cc:136)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5530FCF: KisTiledRandomAccessor::KisTiledRandomAccessor(KisTiledDataManager*, int, int, bool) (kis_tiled_random_accessor.cc:35)
==5400==    by 0x5653DCE: KisRandomConstAccessor::KisRandomConstAccessor(KisDataManager*, int, int, int, int, bool) (kis_random_accessor.cpp:42)
==5400==    by 0x56310CC: KisPaintDevice::createRandomAccessor(int, int, KisSelection const*) (kis_random_accessor.h:76)
==5400==    by 0x55450A7: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:468)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==  This conflicts with a previous read of size 8 by thread #7
==5400==    at 0x553D62C: KisTileDataSwapper::checkFreeMemory() (kis_tile_data_swapper.cpp:104)
==5400==    by 0x5508E5B: KisTileData::KisTileData(KisTileData const&) (kis_tile_data_store.h:65)
==5400==    by 0x550A2F6: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data_store.cc:131)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545D36: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==  Address 0x1980a0b0 is 144 bytes inside a block of size 152 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550B566: KisTileDataStore::instance() (kis_tile_data_store.cc:79)
==5400==    by 0x550D020: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tiled_data_manager.cc:109)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x55EEA6E: KisGroupLayer::KisGroupLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_group_layer.cc:51)
==5400==    by 0x55F80C8: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:293)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40733D: KisLayerTest::testCreation() (kis_layer_test.cpp:49)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during write of size 4 at 0x19890d64 by thread #6
==5400==    at 0x55081A1: KisTile::lockForWrite() (kis_tile_data.h:108)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545D36: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==  This conflicts with a previous write of size 4 by thread #7
==5400==    at 0x550A2D9: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:108)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545D36: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==  Address 0x19890d64 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x5510AB3: KisTiledDataManager::clear(QRect, unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x562DF0A: KisPaintDevice::fill(QRect const&, KoColor const&) (kis_datamanager.h:193)
==5400==    by 0x40953C: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:309)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during read of size 1 at 0x1988cdeb by thread #4
==5400==    at 0x4C2814E: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==  This conflicts with a previous write of size 1 by thread #1
==5400==    at 0xA0E58AD: QReadWriteLock::unlock() (qreadwritelock.cpp:419)
==5400==    by 0x5514A94: KisTileHashTableTraits<KisTile>::getReadOnlyTileLazy(int, int) (qreadwritelock.h:102)
==5400==    by 0x55330B6: KisRandomAccessor2::fetchTileData(int, int) (kis_tiled_data_manager.h:139)
==5400==    by 0x55335D9: KisRandomAccessor2::moveTo(int, int) (kis_random_accessor.cc:82)
==5400==    by 0x563476D: KisPaintDevice::calculateExactBounds() const (kis_paint_device.cc:457)
==5400==    by 0x5634E90: KisPaintDevice::exactBounds() const (kis_paint_device.cc:104)
==5400==    by 0x55CC2BC: KisSelectionDefaultBounds::bounds() const (kis_default_bounds.cpp:82)
==5400==    by 0x5634F9C: KisPaintDevice::extent() const (kis_paint_device.cc:386)
==5400==  Address 0x1988cdeb is 27 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5E37: QReadWriteLock::QReadWriteLock(QReadWriteLock::RecursionMode) (qreadwritelock.cpp:126)
==5400==    by 0x5512D47: KisTileHashTableTraits<KisTile>::KisTileHashTableTraits(KisMementoManager*) (kis_tile_hash_table_p.h:29)
==5400==    by 0x550D2AA: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:52)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400== 
==5400== Possible data race during read of size 1 at 0x1988cdea by thread #4
==5400==    at 0x4C28157: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==  This conflicts with a previous write of size 1 by thread #1
==5400==    at 0xA0E58AD: QReadWriteLock::unlock() (qreadwritelock.cpp:419)
==5400==    by 0x5514A94: KisTileHashTableTraits<KisTile>::getReadOnlyTileLazy(int, int) (qreadwritelock.h:102)
==5400==    by 0x55330B6: KisRandomAccessor2::fetchTileData(int, int) (kis_tiled_data_manager.h:139)
==5400==    by 0x55335D9: KisRandomAccessor2::moveTo(int, int) (kis_random_accessor.cc:82)
==5400==    by 0x563476D: KisPaintDevice::calculateExactBounds() const (kis_paint_device.cc:457)
==5400==    by 0x5634E90: KisPaintDevice::exactBounds() const (kis_paint_device.cc:104)
==5400==    by 0x55CC2BC: KisSelectionDefaultBounds::bounds() const (kis_default_bounds.cpp:82)
==5400==    by 0x5634F9C: KisPaintDevice::extent() const (kis_paint_device.cc:386)
==5400==  Address 0x1988cdea is 26 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5E37: QReadWriteLock::QReadWriteLock(QReadWriteLock::RecursionMode) (qreadwritelock.cpp:126)
==5400==    by 0x5512D47: KisTileHashTableTraits<KisTile>::KisTileHashTableTraits(KisMementoManager*) (kis_tile_hash_table_p.h:29)
==5400==    by 0x550D2AA: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:52)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400== 
==5400== Possible data race during read of size 1 at 0x1988cde9 by thread #4
==5400==    at 0x4C28162: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==  This conflicts with a previous write of size 1 by thread #1
==5400==    at 0xA0E58AD: QReadWriteLock::unlock() (qreadwritelock.cpp:419)
==5400==    by 0x5514A94: KisTileHashTableTraits<KisTile>::getReadOnlyTileLazy(int, int) (qreadwritelock.h:102)
==5400==    by 0x55330B6: KisRandomAccessor2::fetchTileData(int, int) (kis_tiled_data_manager.h:139)
==5400==    by 0x55335D9: KisRandomAccessor2::moveTo(int, int) (kis_random_accessor.cc:82)
==5400==    by 0x563476D: KisPaintDevice::calculateExactBounds() const (kis_paint_device.cc:457)
==5400==    by 0x5634E90: KisPaintDevice::exactBounds() const (kis_paint_device.cc:104)
==5400==    by 0x55CC2BC: KisSelectionDefaultBounds::bounds() const (kis_default_bounds.cpp:82)
==5400==    by 0x5634F9C: KisPaintDevice::extent() const (kis_paint_device.cc:386)
==5400==  Address 0x1988cde9 is 25 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5E37: QReadWriteLock::QReadWriteLock(QReadWriteLock::RecursionMode) (qreadwritelock.cpp:126)
==5400==    by 0x5512D47: KisTileHashTableTraits<KisTile>::KisTileHashTableTraits(KisMementoManager*) (kis_tile_hash_table_p.h:29)
==5400==    by 0x550D2AA: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:52)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400== 
==5400== Possible data race during read of size 1 at 0x1988cde8 by thread #4
==5400==    at 0x4C2816D: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==  This conflicts with a previous write of size 4 by thread #7
==5400==    at 0xA0E58AD: QReadWriteLock::unlock() (qreadwritelock.cpp:419)
==5400==    by 0x5514A94: KisTileHashTableTraits<KisTile>::getReadOnlyTileLazy(int, int) (qreadwritelock.h:102)
==5400==    by 0x5530417: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_data_manager.h:139)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545CEE: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==  Address 0x1988cde8 is 24 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5E37: QReadWriteLock::QReadWriteLock(QReadWriteLock::RecursionMode) (qreadwritelock.cpp:126)
==5400==    by 0x5512D47: KisTileHashTableTraits<KisTile>::KisTileHashTableTraits(KisMementoManager*) (kis_tile_hash_table_p.h:29)
==5400==    by 0x550D2AA: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:52)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400== 
==5400== Possible data race during write of size 4 at 0x19b17c44 by thread #6
==5400==    at 0x5508519: KisTile::lockForRead() const (kis_tile_data.h:108)
==5400==    by 0x5530050: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:52)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554535B: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==  This conflicts with a previous write of size 4 by thread #7
==5400==    at 0x5508519: KisTile::lockForRead() const (kis_tile_data.h:108)
==5400==    by 0x553000D: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:57)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554535B: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==  Address 0x19b17c44 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x562E067: KisPaintDevice::setDefaultPixel(unsigned char const*) (kis_datamanager.h:72)
==5400==    by 0x56141E4: KisMask::initSelection(KisSharedPtr<KisSelection>, KisSharedPtr<KisLayer>) (kis_mask.cc:129)
==5400==    by 0x40964D: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:312)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during write of size 4 at 0x19b17c44 by thread #6
==5400==    at 0x5508519: KisTile::lockForRead() const (kis_tile_data.h:108)
==5400==    by 0x553000D: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:57)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554535B: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==  This conflicts with a previous write of size 4 by thread #7
==5400==    at 0x5508519: KisTile::lockForRead() const (kis_tile_data.h:108)
==5400==    by 0x553000D: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:57)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554535B: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==  Address 0x19b17c44 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x562E067: KisPaintDevice::setDefaultPixel(unsigned char const*) (kis_datamanager.h:72)
==5400==    by 0x56141E4: KisMask::initSelection(KisSharedPtr<KisSelection>, KisSharedPtr<KisLayer>) (kis_mask.cc:129)
==5400==    by 0x40964D: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:312)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during write of size 4 at 0x1987b3c8 by thread #1
==5400==    at 0x562CCC4: KisPaintDevice::setX(int) (kis_paint_device.cc:1080)
==5400==    by 0x560AB20: KisLayer::setX(int) (kis_layer.cc:500)
==5400==    by 0x4097D3: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:320)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400==  This conflicts with a previous read of size 4 by thread #6
==5400==    at 0x563365C: KisPaintDevice::numContiguousColumns(int, int, int) const (kis_paint_device.cc:1065)
==5400==    by 0x5545CAE: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:547)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==  Address 0x1987b3c8 is 24 bytes inside a block of size 64 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x563139B: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_paint_device.cc:210)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during read of size 4 at 0x1987b3cc by thread #7
==5400==    at 0x5633659: KisPaintDevice::numContiguousColumns(int, int, int) const (kis_paint_device.cc:1065)
==5400==    by 0x5545CAE: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:547)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==    by 0x4C29747: mythread_wrapper (hg_intercepts.c:221)
==5400==    by 0xB6DC8B9: start_thread (pthread_create.c:300)
==5400==  This conflicts with a previous write of size 4 by thread #1
==5400==    at 0x562CCE4: KisPaintDevice::setY(int) (kis_paint_device.cc:1086)
==5400==    by 0x560AA80: KisLayer::setY(int) (kis_layer.cc:506)
==5400==    by 0x409807: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:321)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==  Address 0x1987b3cc is 28 bytes inside a block of size 64 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x563139B: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_paint_device.cc:210)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Possible data race during read of size 4 at 0x1987b3c8 by thread #4
==5400==    at 0x563365C: KisPaintDevice::numContiguousColumns(int, int, int) const (kis_paint_device.cc:1065)
==5400==    by 0x5545CAE: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:547)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==    by 0x4C29747: mythread_wrapper (hg_intercepts.c:221)
==5400==    by 0xB6DC8B9: start_thread (pthread_create.c:300)
==5400==  This conflicts with a previous write of size 4 by thread #1
==5400==    at 0x562CCC4: KisPaintDevice::setX(int) (kis_paint_device.cc:1080)
==5400==    by 0x560AB20: KisLayer::setX(int) (kis_layer.cc:500)
==5400==    by 0x4097D3: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:320)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==  Address 0x1987b3c8 is 24 bytes inside a block of size 64 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x563139B: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_paint_device.cc:210)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400==    by 0x405707: main (kis_layer_test.cpp:326)
==5400== 
==5400== Thread #5 was created
==5400==    at 0xB9C0FEE: clone (clone.S:77)
==5400==    by 0xB6DCB23: T.124 (createthread.c:75)
==5400==    by 0xB6DD033: pthread_create@@GLIBC_2.2.5 (createthread.c:249)
==5400==    by 0x4C295BE: pthread_create_WRK (hg_intercepts.c:257)
==5400==    by 0x4C296BE: pthread_create@* (hg_intercepts.c:288)
==5400==    by 0xA0EA861: QThread::start(QThread::Priority) (qthread_unix.cpp:575)
==5400==    by 0xA0DFA82: QThreadPoolPrivate::startThread(QRunnable*) (qthreadpool.cpp:258)
==5400==    by 0xA0DFD42: QThreadPoolPrivate::tryStart(QRunnable*) (qthreadpool.cpp:207)
==5400==    by 0xA0E076D: QThreadPool::start(QRunnable*, int) (qthreadpool.cpp:462)
==5400==    by 0x55E259F: KisUpdaterContext::addJob(KisSharedPtr<KisBaseRectsWalker>) (kis_updater_context.cpp:94)
==5400==    by 0x55E6631: KisSimpleUpdateQueue::processOneJob(KisUpdaterContext&) (kis_simple_update_queue.cpp:89)
==5400==    by 0x55E3817: KisAbstractUpdateQueue::processQueue(KisUpdaterContext&) (kis_abstract_update_queue.cpp:38)
==5400== 
==5400== Possible data race during write of size 8 at 0x1980a0b0 by thread #5
==5400==    at 0x550A1A1: KisTileDataStore::registerTileData(KisTileData*) (kis_tile_data_store.cc:87)
==5400==    by 0x550A309: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data_store.cc:136)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x550F4AF: KisTiledDataManager::pixelPtr(int, int, KisTileDataWrapper::accessType) (kis_tiled_data_manager.h:56)
==5400==    by 0x551160B: KisTiledDataManager::bitBlt(KisTiledDataManager*, QRect const&) (kis_tiled_data_manager.cc:475)
==5400==    by 0x56334C7: KisPaintDevice::fastBitBlt(KisSharedPtr<KisPaintDevice>, QRect const&) (kis_datamanager.h:213)
==5400==    by 0x55456B4: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:433)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x56887FF: KisTransparencyMask::decorateRect(KisSharedPtr<KisPaintDevice>&, KisSharedPtr<KisPaintDevice>&, QRect const&) const (kis_transparency_mask.cc:58)
==5400==    by 0x5614B85: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:201)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==  This conflicts with a previous read of size 8 by thread #6
==5400==    at 0x553D62C: KisTileDataSwapper::checkFreeMemory() (kis_tile_data_swapper.cpp:104)
==5400==    by 0x5508E5B: KisTileData::KisTileData(KisTileData const&) (kis_tile_data_store.h:65)
==5400==    by 0x550A2F6: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data_store.cc:131)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==  Address 0x1980a0b0 is 144 bytes inside a block of size 152 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550B566: KisTileDataStore::instance() (kis_tile_data_store.cc:79)
==5400==    by 0x550D020: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tiled_data_manager.cc:109)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x55EEA6E: KisGroupLayer::KisGroupLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_group_layer.cc:51)
==5400==    by 0x55F80C8: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:293)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40733D: KisLayerTest::testCreation() (kis_layer_test.cpp:49)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during write of size 1 at 0x1988d158 by thread #5
==5400==    at 0xA0E6233: QReadWriteLock::lockForRead() (qreadwritelock.cpp:173)
==5400==    by 0x5508190: KisTile::lockForWrite() (kis_tile_data.h:78)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==  This conflicts with a previous read of size 1 by thread #7
==5400==    at 0x4C2816D: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==  Address 0x1988d158 is 24 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5FCF: QReadWriteLock::QReadWriteLock() (qreadwritelock.cpp:115)
==5400==    by 0x5509006: KisTileData::KisTileData(int, unsigned char const*, KisTileDataStore*) (kis_tile_data.cc:38)
==5400==    by 0x550A3EE: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during write of size 1 at 0x1988d158 by thread #5
==5400==    at 0xA0E6233: QReadWriteLock::lockForRead() (qreadwritelock.cpp:173)
==5400==    by 0x550A2C8: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:78)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==  This conflicts with a previous read of size 1 by thread #7
==5400==    at 0x4C2816D: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==  Address 0x1988d158 is 24 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5FCF: QReadWriteLock::QReadWriteLock() (qreadwritelock.cpp:115)
==5400==    by 0x5509006: KisTileData::KisTileData(int, unsigned char const*, KisTileDataStore*) (kis_tile_data.cc:38)
==5400==    by 0x550A3EE: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during write of size 1 at 0x1988d158 by thread #5
==5400==    at 0xA0E58AD: QReadWriteLock::unlock() (qreadwritelock.cpp:419)
==5400==    by 0x550A2FE: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:87)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==  This conflicts with a previous read of size 1 by thread #7
==5400==    at 0x4C2816D: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==  Address 0x1988d158 is 24 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5FCF: QReadWriteLock::QReadWriteLock() (qreadwritelock.cpp:115)
==5400==    by 0x5509006: KisTileData::KisTileData(int, unsigned char const*, KisTileDataStore*) (kis_tile_data.cc:38)
==5400==    by 0x550A3EE: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during write of size 1 at 0x1988d158 by thread #5
==5400==    at 0xA0E58AD: QReadWriteLock::unlock() (qreadwritelock.cpp:419)
==5400==    by 0x550812C: KisTile::lockForWrite() (kis_tile_data.h:87)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==  This conflicts with a previous read of size 1 by thread #7
==5400==    at 0x4C2816D: memcpy (hg_intercepts.c:2391)
==5400==    by 0x192B00E0: KoCompositeOpCopy2<KoRgbU8Traits>::composite(unsigned char*, int, unsigned char const*, int, unsigned char const*, int, int, int, unsigned char, QBitArray const&) const (KoCompositeOpCopy2.h:75)
==5400==    by 0x682F40C: KoColorSpace::bitBlt(unsigned char*, int, KoColorSpace const*, unsigned char const*, int, unsigned char const*, int, unsigned char, int, int, KoCompositeOp const*, QBitArray const&) const (KoColorSpace.cpp:331)
==5400==    by 0x5545E11: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_painter.cc:569)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==  Address 0x1988d158 is 24 bytes inside a block of size 56 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0xA0E5FCF: QReadWriteLock::QReadWriteLock() (qreadwritelock.cpp:115)
==5400==    by 0x5509006: KisTileData::KisTileData(int, unsigned char const*, KisTileDataStore*) (kis_tile_data.cc:38)
==5400==    by 0x550A3EE: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during write of size 1 at 0x1988d0d4 by thread #4
==5400==    at 0x55081A1: KisTile::lockForWrite() (kis_tile_data.h:108)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==  This conflicts with a previous write of size 1 by thread #7
==5400==    at 0x5508519: KisTile::lockForRead() const (kis_tile_data.h:108)
==5400==    by 0x553000D: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:57)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545CEE: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==  Address 0x1988d0d4 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400== 
==5400== Possible data race during write of size 1 at 0x1988d0d4 by thread #4
==5400==    at 0x550A2D9: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data.h:108)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==  This conflicts with a previous write of size 1 by thread #7
==5400==    at 0x5508519: KisTile::lockForRead() const (kis_tile_data.h:108)
==5400==    by 0x553000D: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:57)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x5545CEE: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x563BCB8: KisPaintLayer::copyOriginalToProjection(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_paint_layer.cc:125)
==5400==    by 0x560CEF6: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:388)
==5400==  Address 0x1988d0d4 is 52 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550A3DA: KisTileDataStore::allocTileData(int, unsigned char const*) (kis_tile_data_store.cc:118)
==5400==    by 0x550D02D: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tile_data_store.h:85)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x563CC52: KisPaintLayer::KisPaintLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_paint_layer.cc:65)
==5400==    by 0x409367: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:306)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400== 
==5400== Possible data race during read of size 8 at 0x1980a0b0 by thread #5
==5400==    at 0x553D62C: KisTileDataSwapper::checkFreeMemory() (kis_tile_data_swapper.cpp:104)
==5400==    by 0x5508E5B: KisTileData::KisTileData(KisTileData const&) (kis_tile_data_store.h:65)
==5400==    by 0x550A2F6: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data_store.cc:131)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==    by 0x5614D24: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:207)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==  This conflicts with a previous write of size 8 by thread #6
==5400==    at 0x550A1A1: KisTileDataStore::registerTileData(KisTileData*) (kis_tile_data_store.cc:87)
==5400==    by 0x550A309: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data_store.cc:136)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==    by 0x5548E27: KisPainter::bitBlt(QPoint const&, KisSharedPtr<KisPaintDevice>, QRect const&) (kis_painter.cc:588)
==5400==  Address 0x1980a0b0 is 144 bytes inside a block of size 152 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550B566: KisTileDataStore::instance() (kis_tile_data_store.cc:79)
==5400==    by 0x550D020: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tiled_data_manager.cc:109)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x55EEA6E: KisGroupLayer::KisGroupLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_group_layer.cc:51)
==5400==    by 0x55F80C8: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:293)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40733D: KisLayerTest::testCreation() (kis_layer_test.cpp:49)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during write of size 8 at 0x1980a0b0 by thread #5
==5400==    at 0x550AC37: KisTileDataStore::freeTileData(KisTileData*) (kis_tile_data_store.cc:107)
==5400==    by 0x55072F5: KisTile::~KisTile() (kis_tile_data.h:67)
==5400==    by 0x55133F6: KisSharedPtr<KisTile>::attach(KisTile*) const (kis_shared_ptr.h:214)
==5400==    by 0x5514F9E: KisTileHashTableTraits<KisTile>::clear() (kis_shared_ptr.h:135)
==5400==    by 0x5511F55: KisTiledDataManager::clear() (kis_tiled_data_manager.cc:425)
==5400==    by 0x562E024: KisPaintDevice::clear() (kis_datamanager.h:201)
==5400==    by 0x5614DB1: KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_mask.cc:54)
==5400==    by 0x560D15E: KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&) const (kis_layer.cc:392)
==5400==    by 0x560E226: KisLayer::updateProjection(QRect const&) (kis_layer.cc:436)
==5400==    by 0x5506258: KisAsyncMerger::startMerge(KisBaseRectsWalker&) (kis_async_merger.h:224)
==5400==    by 0x5506920: KisUpdateJobItem::run() (kis_updater_context.h:39)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==  This conflicts with a previous read of size 8 by thread #4
==5400==    at 0x553D62C: KisTileDataSwapper::checkFreeMemory() (kis_tile_data_swapper.cpp:104)
==5400==    by 0x5508E5B: KisTileData::KisTileData(KisTileData const&) (kis_tile_data_store.h:65)
==5400==    by 0x550A2F6: KisTileDataStore::duplicateTileData(KisTileData*) (kis_tile_data_store.cc:131)
==5400==    by 0x55080E6: KisTile::lockForWrite() (kis_tile_data.h:74)
==5400==    by 0x552FE56: KisTiledRandomAccessor::fetchTileData(int, int) (kis_tiled_random_accessor.h:50)
==5400==    by 0x5530949: KisTiledRandomAccessor::moveTo(int, int) (kis_tiled_random_accessor.cc:89)
==5400==    by 0x5654F99: KisRandomConstAccessor::moveTo(int, int) (kis_random_accessor.cpp:66)
==5400==    by 0x554530E: KisPainter::bitBlt(int, int, KisSharedPtr<KisPaintDevice>, int, int, int, int) (kis_random_accessor.h:167)
==5400==  Address 0x1980a0b0 is 144 bytes inside a block of size 152 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x550B566: KisTileDataStore::instance() (kis_tile_data_store.cc:79)
==5400==    by 0x550D020: KisTiledDataManager::setDefaultPixel(unsigned char const*) (kis_tiled_data_manager.cc:109)
==5400==    by 0x550D2C9: KisTiledDataManager::KisTiledDataManager(unsigned int, unsigned char const*) (kis_tiled_data_manager.cc:56)
==5400==    by 0x56314EE: KisPaintDevice::KisPaintDevice(KisWeakSharedPtr<KisNode>, KoColorSpace const*, KisSharedPtr<KisDefaultBounds>, QString const&) (kis_datamanager.h:59)
==5400==    by 0x55EEA6E: KisGroupLayer::KisGroupLayer(KisWeakSharedPtr<KisImage>, QString const&, unsigned char) (kis_group_layer.cc:51)
==5400==    by 0x55F80C8: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:293)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x40733D: KisLayerTest::testCreation() (kis_layer_test.cpp:49)
==5400==    by 0x40BC6B: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:131)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400== 
==5400== Possible data race during read of size 8 at 0x1987a5f0 by thread #5
==5400==    at 0x55E0053: KisUpdaterContext::hasSpareThread() (kis_updater_context.cpp:59)
==5400==    by 0x55E3807: KisAbstractUpdateQueue::processQueue(KisUpdaterContext&) (kis_abstract_update_queue.cpp:37)
==5400==    by 0x55029A0: KisUpdateScheduler::qt_metacall(QMetaObject::Call, int, void**) (moc_kis_update_scheduler.cpp:75)
==5400==    by 0xA1F46D6: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3280)
==5400==    by 0x5502C95: KisUpdaterContext::qt_metacall(QMetaObject::Call, int, void**) (moc_kis_updater_context.cpp:167)
==5400==    by 0xA1F46D6: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3280)
==5400==    by 0x55069BD: KisUpdateJobItem::run() (kis_updater_context.h:46)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==    by 0x4C29747: mythread_wrapper (hg_intercepts.c:221)
==5400==    by 0xB6DC8B9: start_thread (pthread_create.c:300)
==5400==    by 0xB9C102C: clone (clone.S:112)
==5400==  This conflicts with a previous write of size 8 by thread #6
==5400==    at 0x5506976: KisUpdateJobItem::run() (kis_shared_ptr.h:474)
==5400==    by 0xA0E00B1: QThreadPoolThread::run() (qthreadpool.cpp:106)
==5400==    by 0xA0EA64D: QThreadPrivate::start(void*) (qthread_unix.cpp:266)
==5400==    by 0x4C29747: mythread_wrapper (hg_intercepts.c:221)
==5400==    by 0xB6DC8B9: start_thread (pthread_create.c:300)
==5400==    by 0xB9C102C: clone (clone.S:112)
==5400==  Address 0x1987a5f0 is 32 bytes inside a block of size 96 alloc'd
==5400==    at 0x4C253DA: operator new(unsigned long) (vg_replace_malloc.c:261)
==5400==    by 0x55E04D9: KisUpdaterContext::KisUpdaterContext(int) (kis_updater_context.cpp:34)
==5400==    by 0x55E9E40: KisUpdateScheduler::KisUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_update_scheduler.cpp:26)
==5400==    by 0x55F59CB: createUpdateScheduler(KisWeakSharedPtr<KisImage>) (kis_image.cc:79)
==5400==    by 0x55F8216: KisImage::init(KisUndoAdapter*, int, int, KoColorSpace const*) (kis_image.cc:305)
==5400==    by 0x55F8486: KisImage::KisImage(KisUndoAdapter*, int, int, KoColorSpace const*, QString const&, bool) (kis_image.cc:131)
==5400==    by 0x4092A3: KisLayerTest::testMoveLayerWithMaskThreaded() (kis_layer_test.cpp:304)
==5400==    by 0x40BBCB: KisLayerTest::qt_metacall(QMetaObject::Call, int, void**) (kis_layer_test.moc:137)
==5400==    by 0xA1E5885: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:1575)
==5400==    by 0xA1E6F2D: QMetaObject::invokeMethod(QObject*, char const*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) (qmetaobject.cpp:1148)
==5400==    by 0x59630C5: QTest::qInvokeTestMethod(char const*, char const*) (qobjectdefs.h:408)
==5400==    by 0x596428D: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1499)
==5400== 


More information about the kimageshop mailing list