Bug #32499 | BACKUP DATABASE crashes server if database has 600 tables (any engine) | ||
---|---|---|---|
Submitted: | 19 Nov 2007 18:02 | Modified: | 18 Aug 2009 19:22 |
Reporter: | Guilhem Bichot | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Backup | Severity: | S3 (Non-critical) |
Version: | 5.2-bk | OS: | Linux |
Assigned to: | Chuck Bell | CPU Architecture: | Any |
[19 Nov 2007 18:02]
Guilhem Bichot
[24 Jun 2009 13:06]
Rafal Somla
In the current tree I can get default driver errors already for 65 tables with this test script: ------------------------------------------------------------------------------ CREATE DATABASE db1; USE db1; let $engine=archive; let $tcount=65; while ($tcount) { eval CREATE TABLE t$tcount (a int) ENGINE=$engine; dec $tcount; } BACKUP DATABASE db1 TO 'db1.bkp'; RESTORE FROM 'db1.bkp' OVERWRITE; SHOW TABLES IN db1; DROP DATABASE db1; --exit ------------------------------------------------------------------------------ However, the server does not crash now.
[24 Jun 2009 13:23]
Rafal Somla
With the above script I got server crash for 500 myisam tables. #4 <signal handler called> #5 0x0873da42 in _db_enter_ (_func_=0x88e879f "sql_print_error", _file_=0x88e84ce "log.cc", _line_=6804, _stack_frame_=0xb7352094) at dbug.c:1165 #6 0x083c37fb in sql_print_error (format=0x8997d34 "%s") at log.cc:6804 #7 0x0882bfa0 in backup::Logger::write_message (this=0xb7352ef8, level=backup::log_level::ERROR, error_code=1685, msg=0xb7352324 "Error when sending data (for table #7) to MyISAM restore driver") at logger.cc:63 #8 0x0882c246 in backup::Logger::v_write_message (this=0xb7352ef8, level=backup::log_level::ERROR, error_code=1685, format=0x994e1d3 "Error when sending data (for table #%d) to %-.64s restore driver", args=0xb7352598 "\a") at logger.cc:148 #9 0x0882c2c1 in backup::Logger::v_report_error (this=0xb7352ef8, level=backup::log_level::ERROR, error_code=1685, args=0xb7352598 "\a") at logger.cc:132 #10 0x0881d919 in backup::Logger::report_error (this=0xb7352ef8, error_code=1685) at ../../sql/backup/logger.h:148 #11 0x0882005b in backup::restore_table_data (thd=0x9ac0390, info=@0x9b07900, s=@0xa10a470) at data_backup.cc:1674 #12 0x08818fb4 in Backup_restore_ctx::do_restore (this=0xb7352ef8, overwrite=true) at kernel.cc:1483 This looks wierd because crash is inside DBUG_ENTER. To many levels of DBUG nesting? Note that the backup related problem is that MyISAM restore driver reports error in send_data() method.
[14 Aug 2009 1:22]
Chuck Bell
It appears this problem has been solved. I have successfully created 32,000 tables and executed a backup and restore. Creating a formal test to prove/disprove the premise.
[18 Aug 2009 19:22]
Chuck Bell
Ranger's performance testing routinely test 15000 tables. Clearly, this demonstrates this bug is not repeatable.