• unknown's avatar
    Bug#33464: DROP FUNCTION caused a crash · 2b7dda9e
    unknown authored
    The cause of the crash is an assertion failure that we do not emit 
    an error message (grant not found) and then return "ok".  The 
    assertion is valid, and we were ignoring the buggy behavior prior 
    to the "Diagnostics" result-verification.
    
    Use an error handler to mutate innocuous missing-grant errors, when 
    removing routines, into warnings.
    
    
    mysql-test/r/drop.result:
      Show that the crash disappears.  Also prepare for the larger bug to
      be fixed with only minor changes to this test.
    mysql-test/t/drop.test:
      Show that the crash disappears.  Also prepare for the larger bug to
      be fixed with only minor changes to this test.
    sql/sql_acl.cc:
      Disable a segment of code that makes a faulty assumption
      about the existence of a routine's defining user, until that 
      assumption becomes true.
      
      Push a new handler onto the error-handler stack, so that when 
      removing a routine, a missing ACL grant is now a warning
      instead of an error.  If any unexpected error is raised then tell
      the caller.
    2b7dda9e
sql_acl.cc 189 KB