Skip to content
  • Marek Szymczak's avatar
    9ac9c755
    Bug#23717558 [WARNING] EVENT 'MYSQL_AUDIT_CONNECTION_DISCONNECT' CANNOT BE ABORTED. · 9ac9c755
    Marek Szymczak authored
    Problem:
    ========
    
    Plugin can signal error. A problem ocurr, when a plugin signal error, when already
    handling an error. This causes infinite recursion. There has been workaround,
    but it did not prevent infinite recursion. Infinite recursion just did not crash
    the server.
    
    Additionaly, stack overrun routine works on a THD, which stack info has been
    registered for a particular thread. If it's signalled from a differend thread
    (thread pool), THD's stack info must be changed. This causes numerous problems.
    
    If we do not set start of a stack frame, stack overrun routine signals error,
    but it is discarded due to prevention of the CONNECTION_DISCONNECT abort.
    This is why we see 'CANNOT BE ABORTED' warning, but the root cause is in stack
    overrun routine, which signals stack overrun.
    
    Fix:
    ====
    
    Infinite recursion has been prevented by modification of the error handling routine.
    
    Reviewed-by:
    ============
    Ramil Kalimullin <ramil.kalimullin@oracle.com>
    Georgi 'Joro' Kodinov <georgi.kodinov@oracle.com>
    9ac9c755
    Bug#23717558 [WARNING] EVENT 'MYSQL_AUDIT_CONNECTION_DISCONNECT' CANNOT BE ABORTED.
    Marek Szymczak authored
    Problem:
    ========
    
    Plugin can signal error. A problem ocurr, when a plugin signal error, when already
    handling an error. This causes infinite recursion. There has been workaround,
    but it did not prevent infinite recursion. Infinite recursion just did not crash
    the server.
    
    Additionaly, stack overrun routine works on a THD, which stack info has been
    registered for a particular thread. If it's signalled from a differend thread
    (thread pool), THD's stack info must be changed. This causes numerous problems.
    
    If we do not set start of a stack frame, stack overrun routine signals error,
    but it is discarded due to prevention of the CONNECTION_DISCONNECT abort.
    This is why we see 'CANNOT BE ABORTED' warning, but the root cause is in stack
    overrun routine, which signals stack overrun.
    
    Fix:
    ====
    
    Infinite recursion has been prevented by modification of the error handling routine.
    
    Reviewed-by:
    ============
    Ramil Kalimullin <ramil.kalimullin@oracle.com>
    Georgi 'Joro' Kodinov <georgi.kodinov@oracle.com>
Loading