• He Zhenxing's avatar
    Bug#49020 Semi-sync master crashed with free_pool == NULL, assertion `free_pool_' · 16ec25c0
    He Zhenxing authored
    Before this patch, semisync assumed transactions running in parallel
    can not be larger than max_connections, but this is not true when
    the event scheduler is executing events, and cause semisync run out
    of preallocated transaction nodes.
    
    Fix the problem by allocating transaction nodes dynamically.
    
    This patch also fixed a possible deadlock when running UNINSTALL
    PLUGIN rpl_semi_sync_master and updating in parallel. Fixed by
    releasing the internal Delegate lock before unlock the plugins.
    16ec25c0
semisync_master.h 12.9 KB