• Teemu Ollakka's avatar
    MDEV-19826 10.4 seems to crash with "pool-of-threads" · b9cbb42b
    Teemu Ollakka authored
    MariaDB 10.4 was crashing when thread-handling was set to
    pool-of-threads and wsrep was enabled.
    
    There were two apparent reasons for the crash:
    - Connection handling in threadpool_common.cc was missing calls to
      control wsrep client state.
    - Thread specific storage which contains thread variables (THR_KEY_mysys)
      was not handled appropriately by wsrep patch when pool-of-threads
      was configured.
    
    This patch addresses the above issues in the following way:
    - Wsrep client state open/close was moved in thd_prepare_connection() and
      end_connection() to have common handling for one-thread-per-connection
      and pool-of-threads.
    - Thread local storage handling in wsrep patch was reworked by introducing
      set of wsrep_xxx_threadvars() calls which replace calls to
      THD store_globals()/reset_globals() and deal with thread handling
      specifics internally.
    
    Wsrep-lib was updated to version which relaxes internal concurrency
    related sanity checks.
    
    Rollback code from wsrep_rollback_process() was extracted to separate calls
    for better readability.
    
    Post rollback thread was removed as it was completely unused.
    b9cbb42b
wsrep_trans_observer.h 15.4 KB