• Sujatha Sivakumar's avatar
    MDEV-14784: Slave crashes in show_status_array upon running a trigger with · f2d549d8
    Sujatha Sivakumar authored
    select from I_S
    
    Problem:
    ========
    When applier thread tries to access 'variable_name' of
    INFORMATION_SCHEMA.SESSION_VARIABLES table through triggers, it results in an
    abnormal exit of slave server.
    
    Analysis:
    ========
    At the time of replication of stored routines and triggers, their associated
    security context will be sent by the master. The applier thread on the slave
    server will use this information to set the required security context for the
    execution of stored routines and triggers. This is achieved as follows.
    
    ->The stored routine object has a member named 'm_security_ctx' which holds the
      security context received from master.
    ->The applier thread's security_ctx is stored into a 'backup' object.
    
    ->Set the applier thread's security_ctx to 'm_security_ctx'.
    
    ->Upon the completion of stored routine execution restore the original security
      context of applier thread from the backup.
    
    During the above process the 'm_security_ctx' object is not initialized
    properly. Hence the 'external_user' of 'm_security_ctx' has invalid value for
    this variable and accessing this variable results in abnormal exit of server.
    
    Fix:
    ===
    Invoke the Security_context::init() call from the constructor of stored routine
    so that 'm_security_ctx' gets initialized properly.
    f2d549d8
sp_head.cc 116 KB