Summary: | After painting for some time (about 20-40 mins) Krita crashes | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Raghavendra kamath <raghu> |
Component: | General | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | ghevan, halla |
Priority: | NOR | ||
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/kde/krita/commit/2b07a7f4bd5009e3549cd8bb662af9e2f954a414 | Version Fixed In: | |
Sentry Crash Report: |
Description
Raghavendra kamath
2019-08-25 15:02:05 UTC
This backtrace is a bit clearer: Thread 15 (Thread 0x7f28a91f3700 (LWP 21998)): [KCrash Handler] #6 0x00007f292376e755 in raise () from /usr/lib/libc.so.6 #7 0x00007f2923759851 in abort () from /usr/lib/libc.so.6 #8 0x00007f2923759727 in __assert_fail_base.cold () from /usr/lib/libc.so.6 #9 0x00007f2923767026 in __assert_fail () from /usr/lib/libc.so.6 #10 0x00007f2922bdcad4 in __pthread_tpp_change_priority () from /usr/lib/libpthread.so.0 #11 0x00007f2922bd3890 in __pthread_mutex_lock_full () from /usr/lib/libpthread.so.0 #12 0x00007f2923d074a6 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/libQt5Core.so.5 #13 0x00007f2923d07692 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5 #14 0x00007f2926dec302 in SimpleJobCoordinator::participate (this=0x7f28cc3b4b50) at /mnt/attic/krita-build/src/krita/libs/image/3rdparty/lock_free_map/simple_job_coordinator.h:74 #15 ConcurrentMap<unsigned int, KisTile*, DefaultKeyTraits<unsigned int>, DefaultValueTraits<KisTile*> >::Mutator::exchangeValue (desired=<optimized out>, this=0x7f28a91f2920) at /mnt/attic/krita-build/src/krita/libs/image/3rdparty/lock_free_map/concurrent_map.h:174 #16 KisTileHashTableTraits2<KisTile>::getTileLazy (this=<optimized out>, col=col@entry=21, row=row@entry=2, newTile=@0x7f28a91f29c7: false) at /mnt/attic/krita-build/src/krita/libs/image/tiles3/kis_tile_hash_table2.h:342 #17 0x00007f2926dfe02a in KisTiledDataManager::getTile (writable=<optimized out>, row=2, col=21, this=0x7f28d4028290) at /mnt/attic/krita-build/src/krita/libs/image/tiles3/kis_tiled_data_manager.h:120 #18 KisTiledDataManager::getTilesPair (oldTile=0x7f28a422d690, tile=0x7f28a422d688, writable=<optimized out>, row=2, col=21, this=0x7f28d4028290) at /mnt/attic/krita-build/src/krita/libs/image/tiles3/kis_tiled_data_manager.h:107 #19 KisHLineIterator2::fetchTileDataForCache (this=0x7f28a41e5330, kti=..., col=21, row=2) at /mnt/attic/krita-build/src/krita/libs/image/tiles3/kis_hline_iterator.cpp:206 #20 0x00007f2926dfeff1 in KisHLineIterator2::KisHLineIterator2 (this=0x7f28a41e5330, dataManager=0x7f28d4028290, x=1280, y=<optimized out>, w=<optimized out>, offsetX=<optimized out>, offsetY=0, writable=true, competionListener=0x7f28840a4060, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/include/qt/QtCore/qarraydata.h:211 #21 0x00007f2926f9a4c9 in KisPaintDevice::Private::KisPaintDeviceStrategy::createHLineIteratorNG (this=<optimized out>, dataManager=0x7f28d4028290, x=1280, y=128, w=128, offsetX=0, offsetY=0) at /mnt/attic/krita-build/src/krita/libs/image/kis_paint_device_data.h:262 #22 0x00007f2926f8d47a in KisPaintDevice::Private::StrategyPolicy::createIterator (rect=<synthetic pointer>..., this=<synthetic pointer>) at /usr/include/qt/QtCore/qrect.h:266 #23 WritableIteratorPolicy<KisPaintDevice::Private::StrategyPolicy>::WritableIteratorPolicy (rect=<synthetic pointer>..., source=..., this=0x7f28a91f2b80) at /mnt/attic/krita-build/src/krita/libs/image/kis_sequential_iterator.h:83 #24 KisSequentialIteratorBase<WritableIteratorPolicy<KisPaintDevice::Private::StrategyPolicy>, KisPaintDevice::Private::StrategyPolicy, NoProgressPolicy>::KisSequentialIteratorBase (progressPolicy=..., rect=<synthetic pointer>..., source=..., this=0x7f28a91f2b80) at /mnt/attic/krita-build/src/krita/libs/image/kis_sequential_iterator.h:200 #25 KisPaintDevice::Private::updateLodDataManager (this=0x562431568620, srcDataManager=<optimized out>, dstDataManager=0x7f28d4028290, srcOffset=..., dstOffset=..., originalRect=..., lod=2) at /mnt/attic/krita-build/src/krita/libs/image/kis_paint_device.cc:743 #26 0x00007f2926f8dbc8 in KisPaintDevice::Private::updateLodDataStruct (this=0x562431568620, _dst=<optimized out>, originalRect=...) at /usr/include/c++/9.1.0/bits/atomic_base.h:318 #27 0x00007f2926f0ade6 in KisSyncLodCacheStrokeStrategy::doStrokeCallback (this=<optimized out>, data=<optimized out>) at /mnt/attic/krita-build/src/krita/libs/image/kis_sync_lod_cache_stroke_strategy.cpp:108 #28 0x00007f2926dddeb4 in non-virtual thunk to KisUpdateJobItem::run() () at /usr/include/qt/QtCore/qarraydata.h:236 #29 0x00007f2923d04912 in ?? () from /usr/lib/libQt5Core.so.5 #30 0x00007f2923d01520 in ?? () from /usr/lib/libQt5Core.so.5 #31 0x00007f2922bd157f in start_thread () from /usr/lib/libpthread.so.0 #32 0x00007f29238300e3 in clone () from /usr/lib/libc.so.6 *** Bug 411224 has been marked as a duplicate of this bug. *** Git commit 4613587dfa5d0f1eab258cf1126f6e7782af247d by Dmitry Kazakov. Committed on 28/08/2019 at 12:48. Pushed by dkazakov into branch 'master'. Fix a possible crash in SimpleJobCoordinator during migrations We have no report about that is a wild, but it is quite possible. All the accesses to the hash table should be guarded by the GC block. No garbage should be free'd during the access to hash table, otherwise concurrent migrations can delete currently used data. M +14 -0 libs/image/tiles3/kis_tile_data_store.cc https://invent.kde.org/kde/krita/commit/4613587dfa5d0f1eab258cf1126f6e7782af247d Git commit c9c4ac82d70d4f0e4c56ad680560e2ccb6f5eb82 by Dmitry Kazakov. Committed on 28/08/2019 at 12:48. Pushed by dkazakov into branch 'master'. Fix crash when painting in SimpleJobCoordinator Mutator must be accessed only when raw pointers are locked. Otherwise, a migration, that can happen right in the middle of the mutator's life, will be deleted and the mutator will point to a free'd memory. M +38 -34 libs/image/tiles3/kis_tile_hash_table2.h https://invent.kde.org/kde/krita/commit/c9c4ac82d70d4f0e4c56ad680560e2ccb6f5eb82 Git commit 2b07a7f4bd5009e3549cd8bb662af9e2f954a414 by Dmitry Kazakov. Committed on 13/09/2019 at 08:56. Pushed by dkazakov into branch 'krita/4.2'. Fix crash when painting in SimpleJobCoordinator Mutator must be accessed only when raw pointers are locked. Otherwise, a migration, that can happen right in the middle of the mutator's life, will be deleted and the mutator will point to a free'd memory. M +38 -34 libs/image/tiles3/kis_tile_hash_table2.h https://invent.kde.org/kde/krita/commit/2b07a7f4bd5009e3549cd8bb662af9e2f954a414 Git commit a52f654bc481d3425c1c8178ce40e44b76e3e224 by Dmitry Kazakov. Committed on 13/09/2019 at 08:56. Pushed by dkazakov into branch 'krita/4.2'. Fix a possible crash in SimpleJobCoordinator during migrations We have no report about that is a wild, but it is quite possible. All the accesses to the hash table should be guarded by the GC block. No garbage should be free'd during the access to hash table, otherwise concurrent migrations can delete currently used data. M +14 -0 libs/image/tiles3/kis_tile_data_store.cc https://invent.kde.org/kde/krita/commit/a52f654bc481d3425c1c8178ce40e44b76e3e224 |