• Jon Olav Hauglid's avatar
    Followup to Bug#45225 Locking: hang if drop table with no timeout · e60ef893
    Jon Olav Hauglid authored
    This patch prevents system threads and system table accesses from
    using user-specified values for "lock_wait_timeout". Instead all
    such accesses are done using the default value (1 year).
    
    This prevents background tasks (such as replication, events, 
    accessing stored function definitions, logging, reading time-zone
    information, etc.) from failing in cases where the global value
    of "lock_wait_timeout" is set very low.
    
    The patch also simplifies the open tables API. Rather than adding
    another convenience function for opening and locking system tables,
    this patch removes most of the existing convenience functions for
    open_and_lock_tables_derived(). Before, open_and_lock_tables() was
    a convenience function that enforced derived tables handling, while
    open_and_lock_tables_derived() was the main function where derived
    tables handling was optional. Now, this convencience function is
    gone and the main function is renamed to open_and_lock_tables(). 
    
    No test case added as it would have required the use of --sleep to
    check that system threads and system tables have a different timeout
    value from the user-specified "lock_wait_timeout" system variable.
    e60ef893
lock.cc 49.3 KB