Bug #34858 | Server crashes by backup tests | ||
---|---|---|---|
Submitted: | 26 Feb 2008 20:10 | Modified: | 18 Jul 2008 16:46 |
Reporter: | Alexander Nozdrin | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Backup | Severity: | S1 (Critical) |
Version: | 6.0-runtime | OS: | Any |
Assigned to: | Chuck Bell | CPU Architecture: | Any |
[26 Feb 2008 20:10]
Alexander Nozdrin
[12 Mar 2008 17:55]
Chuck Bell
Problems identified. Patch forthcoming...
[12 Mar 2008 18:41]
Chuck Bell
Patch ready for review. http://lists.mysql.com/commits/43873
[14 Mar 2008 18:10]
Chuck Bell
Original patch rejected. Back to the drawing board. :) More details to follow.
[14 Mar 2008 19:53]
Chuck Bell
Problem ------- The backup progress tables can no longer operate as they do now using the locking thread to open the tables and updating data in another. Changes to the handler code prohibit such operations. It was decided to change the implementation of the backup progress tables to use the logging functionality similar to how the query log does now. Additionally, work is underway to enhance the backup progress tables functionality (WL#4303). Proposed Solution ----------------- Change the implementation of the backup progress tables to use the logging mechanism but do not change any of it's functionality. This includes leaving the names, data types, values, etc. the same for both the online_backup and online_backup_progress tables as well as the basic interface as used by the backup kernel code intact (see backup_progress.h/.cc). Thus, there will be no changes to the kernel code. Since the implementation will be changed to use the logging mechanism, it is best (for the reasons above) to hard code the settings to write to tables for now. If it is decided to allow customization of the backup progress logs, that can be done in WL#4303. The intention is to change the implementation by removing the use of the be_thread mechanism and use the existing logging functions instead.
[17 Mar 2008 19:33]
Chuck Bell
There is one small change needed in the interface between the kernel and the report_ob_* methods: I have to add the THD object.
[17 Mar 2008 21:42]
Chuck Bell
Ok, here's another unavoidable feature change...there are no auto_increment fields permitted. I will have to invent a new mechanism. More details to come.
[17 Mar 2008 21:56]
Chuck Bell
Solution found. Leave tables in MyISAM for now. Made notes in code.
[18 Mar 2008 18:13]
Chuck Bell
A patch is ready for review. See: http://lists.mysql.com/commits/44196 This patch simply changes the implementation of the backup progress tables to backup logs using the logging functionality (same as general log) with some exceptions (see below). Note that there are some known limitations for this code. * The logs are written to tables only. * The tables are unchanged from previous code/design. * The backup logs are not affected by --log, --log-option. * There is a FLUSH BACKUP LOGS, but not a PURGE BACKUP LOGS. The new logs behave the same was as the progress tables did except that now that they are logs, you cannot delete from them.
[18 Mar 2008 18:13]
Chuck Bell
A patch is ready for review. See: http://lists.mysql.com/commits/44196 This patch simply changes the implementation of the backup progress tables to backup logs using the logging functionality (same as general log) with some exceptions (see below). Note that there are some known limitations for this code. * The logs are written to tables only. * The tables are unchanged from previous code/design. * The backup logs are not affected by --log, --log-option. * There is a FLUSH BACKUP LOGS, but not a PURGE BACKUP LOGS. The new logs behave the same was as the progress tables did except that now that they are logs, you cannot delete from them.
[19 Mar 2008 17:03]
Chuck Bell
The patch below represents a proposed solution to fix the backup progress table problems. This solution uses the performance table open/close (the same as what is used in logs) to open and close the backup progress tables. http://lists.mysql.com/commits/44247 There is just one small limitation after this patch: users cannot delete from the progress tables. We will have to add a PURGE command for this (which is already requested under BUG#33364).
[19 Mar 2008 17:05]
Chuck Bell
If the above solution is not acceptable, I have prepared a separate patch that simply removes the backup progress reporting. http://lists.mysql.com/commits/44232
[20 Mar 2008 10:37]
Rafal Somla
Good to push.
[20 Mar 2008 14:55]
Chuck Bell
Patch queued. Minor adjustments from review only. http://lists.mysql.com/commits/44290
[15 Apr 2008 17:58]
Bugs System
Pushed into 6.0.5-alpha
[18 Jul 2008 16:46]
Paul DuBois
Noted in 6.0.5 changelog. Logging to the progress tables used by BACKUP DATABASE and RESTORE caused a server crash.