• Marko Mäkelä's avatar
    MDEV-29043 mariabackup --compress hangs · a1055ab3
    Marko Mäkelä authored
    Even though commit b817afaa passed
    the test mariabackup.compress_qpress, that test turned out to be
    too small to reveal one more problem that had previously been prevented
    by the existence of ctrl_mutex. I did not realize that there can be
    multiple concurrent callers to compress_write(). One of them is the
    log copying thread; further callers are data file copying threads
    (default: --parallel=1).
    
    By default, there is only one compression worker thread
    (--compress-threads=1).
    
    compress_write(): Fix a race condition between threads that would
    use the same worker thread object. Make thd->data_avail contain the
    thread identifier of the submitter, and add thd->avail_cond to
    notify other compress_write() threads that are waiting for a slot.
    a1055ab3
ds_compress.cc 10.8 KB