• Andrei Elkin's avatar
    MDEV-17346 parallel slave start and stop races to workers disappeared · f517d8c7
    Andrei Elkin authored
    The bug appears as a slave SQL thread hanging in
    rpl_parallel_thread_pool::get_thread() while there are no slave worker
    threads to awake it.
    
    The reason of the hang is that at the parallel slave worker pool
    activation the being stared SQL thread could read the worker pool size
    concurrently with pool deactivation. At reading the SQL thread did not
    employ necessary protection from a race.
    
    Fixed with making the SQL thread at the pool activation first
    to grab the same lock as potential deactivator also does prior
    to access the pool size.
    f517d8c7
rpl_parallel.cc 87.8 KB