https://bugs.kde.org/show_bug.cgi?id=411081
Dmitry Kazakov <dimul...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDSINFO |RESOLVED Latest Commit|https://invent.kde.org/kde/ |https://invent.kde.org/kde/ |krita/commit/2fdd504dfe6ec6 |krita/commit/8b436ffc8ab139 |3b654ee0878c9f95cb69d4a6ad |98a3d04702583f07c38a20a319 |https://invent.kde.org/kde/ |https://invent.kde.org/kde/ |krita/commit/8b436ffc8ab139 |krita/commit/57c8db26dc9486 |98a3d04702583f07c38a20a319 |eff6fab9e046b2df2320f23183 --- Comment #30 from Dmitry Kazakov <dimul...@gmail.com> --- Git commit 8b436ffc8ab13998a3d04702583f07c38a20a319 by Dmitry Kazakov. Committed on 13/09/2019 at 08:55. Pushed by dkazakov into branch 'krita/4.2'. Fix checking if swap location is set to a writable location QFileInfo::isWritable() doesn't work on NTFS by default, so we should just try to create a test fiel to check that. Related: bug 411129 M +31 -5 libs/image/kis_image_config.cpp https://invent.kde.org/kde/krita/commit/8b436ffc8ab13998a3d04702583f07c38a20a319 --- Comment #31 from Dmitry Kazakov <dimul...@gmail.com> --- Git commit ea97d0bc790d1be287ab61ac910586eecd23d1e7 by Dmitry Kazakov. Committed on 13/09/2019 at 08:53. Pushed by dkazakov into branch 'krita/4.2'. Fix ConcurrentMap::migrationInProcess() to handle initialization value (0) properly Job coordinator of the table may have three states: 1) jobCoordinator == 0: the table was initialized, but no migration has ever been started for this table 2) jobCoordinator > 1: a table migration is in progress right now. The caller should join *jobCoordinator to help finishing the migration. 3) jobCoordinator == 1: the table migration has been finished. It means that the table doesn't have any values in it anymore. The patch actually fixes the map to consider case 1 as a situation, when there is no migration. M +1 -1 libs/image/3rdparty/lock_free_map/concurrent_map.h https://invent.kde.org/kde/krita/commit/ea97d0bc790d1be287ab61ac910586eecd23d1e7 --- Comment #32 from Dmitry Kazakov <dimul...@gmail.com> --- Git commit 57c8db26dc9486eff6fab9e046b2df2320f23183 by Dmitry Kazakov. Committed on 13/09/2019 at 08:54. Pushed by dkazakov into branch 'krita/4.2'. Fix random crash when swap-file location has not got enough disk space Lockfree hash table iterators have a requirement of no-concurrent-inserts, so we must ensure that the swapper and pooler do *not* insert any tiles, why iteration is in progress. KisTileDataStore::trySwapTileData() is called exactly from inside of the swapper iteration loop. If we break this requirement, the insert operation may request a table migration, and the iterator will continue iterating the old, invalid, table. The actual crash happened after line 'item = iter->next()' in KisTileDataSwapper::pass(), which actually returned value '1', meaning "Redirect". Address 0x0000000000000029 is a fetch of KisTileData::m_mementoFlag (offset 0x28) with 'this' set to 0x01 :) M +3 -0 libs/image/3rdparty/lock_free_map/concurrent_map.h M +1 -4 libs/image/tiles3/kis_tile_data_store.cc https://invent.kde.org/kde/krita/commit/57c8db26dc9486eff6fab9e046b2df2320f23183 -- You are receiving this mail because: You are watching all bug changes.