https://bugs.kde.org/show_bug.cgi?id=457688
Bug ID: 457688 Summary: Crash after a safe assert in tile_hash_table on adding a Filter Mask to a layer Product: krita Version: git master (please specify the git hash!) Platform: Mint (Ubuntu based) OS: Linux Status: REPORTED Severity: crash Priority: NOR Component: Layer Stack Assignee: krita-bugs-n...@kde.org Reporter: tamtamy.tym...@gmail.com Target Milestone: --- SUMMARY Safe assert occured when I tried to add a filter as a mask to a layer. If you ignore the safe assert, it will appear again and again and then Krita will crash. STEPS TO REPRODUCE 1. Open the test file provided. 2. Go to "Filter -> Adjust -> Color Adjustment Curves" 3. Press "Create Filter Mask" OBSERVED RESULT 4. Safe assert: m_image KisImage(0x555557075540, name = "OpenRaster Image (name)") QPaintDevice: Cannot destroy paint device that is being painted SAFE ASSERT (krita): "qAbs(row) < 0x7FFF && qAbs(col) < 0x7FFF" in file /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h, line 151 5. If you ignore the safe assert in the dev build, you'll get it a few more times, and then eventually a crash: Thread 1 "krita" received signal SIGSEGV, Segmentation fault. 0x00007ffff6211a26 in QPlatformPixmap::mask() const () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 EXPECTED RESULT No safe assert. No crash after ignoring safe asserts. SOFTWARE/OS VERSIONS Krita Version: 5.2.0-prealpha (git e13edec3dc) Hidpi: true Qt Version (compiled): 5.12.8 Version (loaded): 5.12.8 OS Information Build ABI: x86_64-little_endian-lp64 Build CPU: x86_64 CPU: x86_64 Kernel Type: linux Kernel Version: 5.13.0-35-generic Pretty Productname: Linux Mint 20.3 Product Type: linuxmint Product Version: 20.3 Desktop: X-Cinnamon SAFE ASSERT LOG (shortened): m_image KisImage(0x555557075540, name = "OpenRaster Image (name)") QPaintDevice: Cannot destroy paint device that is being painted SAFE ASSERT (krita): "qAbs(row) < 0x7FFF && qAbs(col) < 0x7FFF" in file /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h, line 151 Thread 1 "krita" received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: Nie ma takiego pliku ani katalogu. (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x00007ffff5748859 in __GI_abort () at abort.c:79 #2 0x00007ffff5b9caad in () at /lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007ffff6d5bf64 in kis_assert_common(char const*, char const*, int, bool, bool) (assertion=<optimized out>, file=<optimized out>, line=<optimized out>, throwException=<optimized out>, isIgnorable=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:208 #4 0x00007ffff70d4eb8 in KisTileHashTableTraits2<KisTile>::calculateHashSafe(int, int) (col=-16777216, row=-16777216, this=<optimized out>) at /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h:149 #5 KisTileHashTableTraits2<KisTile>::calculateHashSafe(int, int) (this=0x555558cf6ea0, row=-16777216, col=-16777216) at /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h:149 #6 KisTileHashTableTraits2<KisTile>::getReadOnlyTileLazy(int, int, bool&) (this=0x555558cf6ea0, col=col@entry=-16777216, row=row@entry=-16777216, existingTile=@0x7fffffffb940: 32) at /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h:406 #7 0x00007ffff70eb0e1 in KisTiledDataManager::getTile(int, int, bool) (writable=<optimized out>, row=-16777216, col=-16777216, this=0x55555e2d7ca0) at /home/tymon/kritadev/krita/libs/image/tiles3/kis_tiled_data_manager.h:116 #8 KisTiledDataManager::getTilesPair(int, int, bool, KisSharedPtr<KisTile>*, KisSharedPtr<KisTile>*) (oldTile=0x555563893ed8, tile=0x555563893ed0, writable=<optimized out>, row=-16777216, col=-16777216, this=0x55555e2d7ca0) at /home/tymon/kritadev/krita/libs/image/tiles3/kis_tiled_data_manager.h:95 #9 KisRandomAccessor2::fetchTileData(int, int) (this=0x555565f4b9f0, col=-16777216, row=-16777216) at /home/tymon/kritadev/krita/libs/image/tiles3/kis_random_accessor.cc:113 #10 0x00007ffff70eb486 in KisRandomAccessor2::moveTo(int, int) (this=0x555565f4b9f0, x=-1073741824, y=-1073741824) at /home/tymon/kritadev/krita/libs/image/tiles3/kis_random_accessor.cc:80 #11 0x00007ffff72d9a5f in createThumbnailDeviceInternal(KisPaintDevice const*, qint32, qint32, qint32, qint32, qint32, qint32, QRect) (srcDev=<optimized out>, srcX0=-1073741824, srcY0=-1073741824, srcWidth=2147483647, srcHeight=2147483647, w=62, h=62, outputRect=...) at /home/tymon/kritadev/krita/libs/image/kis_paint_device.cc:1714 CRASH LOG (shortened): m_image KisImage(0x55555938ebc0, name = "OpenRaster Image (name)") SAFE ASSERT (krita): "dst->lodData->levelOfDetail() == defaultBounds->currentLevelOfDetail()" in file /home/tymon/kritadev/krita/libs/image/kis_paint_device.cc, line 852 SAFE ASSERT (krita): "dst->lodData->levelOfDetail() == defaultBounds->currentLevelOfDetail()" in file /home/tymon/kritadev/krita/libs/image/kis_paint_device.cc, line 852 QPaintDevice: Cannot destroy paint device that is being painted SAFE ASSERT (krita): "qAbs(row) < 0x7FFF && qAbs(col) < 0x7FFF" in file /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h, line 151 SAFE ASSERT (krita): "qAbs(row) < 0x7FFF && qAbs(col) < 0x7FFF" in file /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h, line 151 SAFE ASSERT (krita): "qAbs(row) < 0x7FFF && qAbs(col) < 0x7FFF" in file /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h, line 151 SAFE ASSERT (krita): "qAbs(row) < 0x7FFF && qAbs(col) < 0x7FFF" in file /home/tymon/kritadev/krita/libs/image/tiles3/kis_tile_hash_table2.h, line 151 Thread 1 "krita" received signal SIGSEGV, Segmentation fault. 0x00007ffff6211a26 in QPlatformPixmap::mask() const () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 (gdb) bt #0 0x00007ffff6211a26 in QPlatformPixmap::mask() const () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #1 0x00007ffff6414c0a in QPainter::setBrushOrigin(QPointF const&) () at /lib/x86_64-linux-gnu/libQt5Gui.so.5 #2 0x00007fffd1ed62f5 in QPainter::setBrushOrigin(QPoint const&) (p=<synthetic pointer>..., this=0x7fffffffc6b8) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qpoint.h:131 #3 NodeDelegate::drawThumbnail(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (this=0x55555a3d6ad0, p=0x7fffffffc6b8, option=..., index=...) at /home/tymon/kritadev/krita/plugins/dockers/layerdocker/NodeDelegate.cpp:307 #4 0x00007fffd1eddfc3 in NodeDelegate::paint(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const (this=0x55555a3d6ad0, p=0x7fffffffc6b8, o=..., index=...) at /home/tymon/kritadev/krita/plugins/dockers/layerdocker/NodeDelegate.cpp:134 #5 0x00007ffff6a8d56a in QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #6 0x00007ffff6a92a83 in QTreeView::drawTree(QPainter*, QRegion const&) const () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5 -- You are receiving this mail because: You are watching all bug changes.