Bug #47870 | Bogus "The table mysql.proc is missing,..." | ||
---|---|---|---|
Submitted: | 6 Oct 2009 17:28 | Modified: | 24 Jun 2011 18:43 |
Reporter: | Matthias Leich | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
Version: | 5.1,6.0.14 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[6 Oct 2009 17:28]
Matthias Leich
[4 Nov 2009 15:55]
Jon Olav Hauglid
Reproduceable using MTR on 5.1-bugteam if the following sync point is added: === modified file 'sql/sql_db.cc' @@ -1630,6 +1631,8 @@ bool mysql_change_db(THD *thd, const LEX } #endif + DEBUG_SYNC(thd, "before_db_dir_check"); + if (check_db_dir_existence(new_db_file_name.str)) { if (force_switch) MTR test file: ============== --source include/have_debug_sync.inc CREATE SCHEMA s1; CREATE PROCEDURE s1.p1() BEGIN END; connect (con2, localhost, root); SET DEBUG_SYNC='before_db_dir_check SIGNAL check_db WAIT_FOR dropped_schema'; --send CALL s1.p1 connection default; SET DEBUG_SYNC='now WAIT_FOR check_db'; DROP SCHEMA s1; SET DEBUG_SYNC='now SIGNAL dropped_schema'; connection con2; --error ER_SP_PROC_TABLE_CORRUPT # <= This is the bogus error message --reap;
[20 Nov 2009 9:44]
Philip Stoev
(11:40:26 AM) joh: pstoev: The only consequence of this bug is that you get a different error message than you should have gotten. mysql.proc is not corrupted or anything like that.
[24 Jun 2011 18:43]
Paul DuBois
Noted in 5.1.59, 5.5.15, 5.6.3 changelogs. A race condition between loading a stored routine using the name qualified by the database name and dropping that database resulted in a spurious error message: The table mysql.proc is missing, corrupt, or contains bad data CHANGESET - http://lists.mysql.com/commits/139789