• Dmitry Kazakov's avatar
    Fix random crash when swap-file location has not got enough disk space · ac020c6c
    Dmitry Kazakov authored
    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 :)
    
    BUG:411081
    ac020c6c
Name
Last commit
Last update
.github Loading commit data...
.gitlab/merge_request_templates Loading commit data...
3rdparty Loading commit data...
benchmarks Loading commit data...
build-tools Loading commit data...
cmake Loading commit data...
dev-tools/python Loading commit data...
interfaces Loading commit data...
krita Loading commit data...
libs Loading commit data...
packaging Loading commit data...
pics Loading commit data...
plugins Loading commit data...
sdk Loading commit data...
winquirks Loading commit data...
.arcconfig Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.lgtm.yml Loading commit data...
AUTHORS Loading commit data...
CMakeLists.txt Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COPYING Loading commit data...
COPYING-CMAKE-SCRIPTS Loading commit data...
CTestConfig.cmake Loading commit data...
HACKING Loading commit data...
KoAlwaysInline.h Loading commit data...
KoConfig.h.cmake Loading commit data...
Mainpage.dox Loading commit data...
Messages.sh Loading commit data...
README.md Loading commit data...
action_i18n.pl Loading commit data...
config-gsl.h.cmake Loading commit data...
config-hash-table-implementaion.h.cmake Loading commit data...
config-hdr.h.cmake Loading commit data...
config-hide-safe-asserts.h.cmake Loading commit data...
config-high-dpi-scale-factor-rounding-policy.h.in Loading commit data...
config-limit-long-tests.h.cmake Loading commit data...
config-ocio.h.cmake Loading commit data...
config-powf.h.cmake Loading commit data...
config-qtmultimedia.h.cmake Loading commit data...
config-set-has-border-in-full-screen-default.h.in Loading commit data...
config-vc.h.cmake Loading commit data...
config_convolution.h.cmake Loading commit data...
config_use_qt_tablet_windows.h.cmake Loading commit data...
extracti18n.pl Loading commit data...
kundo2_aware_xgettext.sh Loading commit data...
setup.cfg Loading commit data...