Bug #34065 Backup: file names may be too short
Submitted: 25 Jan 2008 18:43 Modified: 20 Feb 2010 19:45
Reporter: Peter Gulutzan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Backup Severity:S3 (Non-critical)
Version:6.0.5-alpha-debug OS:Linux (SUSE 10 / 64-bit)
Assigned to: Anurag Shekhar CPU Architecture:Any
Triage: Triaged: D3 (Medium) / R3 (Medium) / E3 (Medium)

[25 Jan 2008 18:43] Peter Gulutzan
Description:
In mysql.online_backup, file name columns are too short.
I can backup with a 255-character filename, but I only
see the first 100 characters in mysql.online_backup.backup_file.

System columns for file/path information have varying definitions:
mysql.online_backup.backup_file is CHAR(100)
mysql.online_backup.binlog_file is CHAR(64)
mysql.plugin.dl is CHAR(128) COLLATE utf8_bin
information_schema.plugins.library is VARCHAR(64)
information_schema.files.file_name is VARCHAR(64)
... So I don't think there is any standard length or collation.

But whatever the arbitrary maximum is, it should not be
greater than length(mysql.online_backup.backup_file).

How to repeat:
mysql> SELECT LENGTH('X12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234') as len;
+-----+
| len |
+-----+
| 255 |
+-----+
1 row in set (0.00 sec)

mysql> backup database test to 'X12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234';
+-----------+
| backup_id |
+-----------+
| 5         |
+-----------+
1 row in set (0.14 sec)

mysql> select length(backup_file),backup_file from mysql.online_backup
    -> where backup_file like 'X%';
+---------------------+------------------------------------------------------------------------------------------------------+
| length(backup_file) | backup_file                                                                                          |
+---------------------+------------------------------------------------------------------------------------------------------+
|                 100 | X123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 |
+---------------------+------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
[26 Jan 2008 11:58] Sveta Smirnova
Thank you for the report.

Verified as described.
[28 Jan 2010 10:40] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/98442

2938 Anurag Shekhar	2010-01-28
      Bug #34065 Backup: file names may be too short.
      
      Size of backup_file was 100, so the longer names 
      were getting truncated while insert.
      
      Increasing the size to 255 fixed the problem.
     @ mysql-test/suite/backup/r/backup_misc.result
        Added a new test script for bug#34065
        This file can be used for all uncategorised tests.
     @ mysql-test/suite/backup/t/backup_misc.test
        Result file for newly added test script.
     @ scripts/mysql_system_tables.sql
        Updated backup_history table defnition to increase the
        size of backup_file field width to 255.
     @ scripts/mysql_system_tables_fix.sql
        Added Alter table statement to increase size of 
        backup_history.backup_file to 255.
[28 Jan 2010 18:37] Rafal Somla
Good to push.
[29 Jan 2010 8:51] Ingo Strüwing
Approved pending changes. Please see email for details.
[29 Jan 2010 9:46] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/98563

2941 Anurag Shekhar	2010-01-29
      Bug #34065 Backup: file names may be too short.
      
      Size of backup_file was 100, so the longer names 
      were getting truncated while insert.
      
      Increasing the size to 255 fixed the problem.
     @ mysql-test/suite/backup/r/backup_misc.result
        Result file for newly added test script.
     @ mysql-test/suite/backup/t/backup_misc.test
        Added a new test script for bug#34065
        This file can be used for all uncategorised tests.
     @ scripts/mysql_system_tables.sql
        Updated backup_history table defnition to increase the
        size of backup_file field width to 255.
     @ scripts/mysql_system_tables_fix.sql
        Added Alter table statement to increase size of 
        backup_history.backup_file to 255.
[29 Jan 2010 18:40] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/98678

3076 Chuck Bell	2010-01-29
      Bug #34065 Backup: file names may be too short.
      
      Size of backup_file was 100, so the longer names 
      were getting truncated while insert.
      
      original changeset: 2941 (mysql-6.0-backup)
[29 Jan 2010 18:41] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/98679

3077 Chuck Bell	2010-01-29
      Fixing regression caused by patch for bug#34065
      
      original changeset: 2942 (mysql-6.0-backup)
[20 Feb 2010 9:16] Bugs System
Pushed into 6.0.14-alpha (revid:ingo.struewing@sun.com-20100218152520-s4v1ld76bif06eqn) (version source revid:ingo.struewing@sun.com-20100202134837-dgbscc9m1d4dnw3y) (merge vers: 6.0.14-alpha) (pib:16)
[20 Feb 2010 19:45] Paul Dubois
Noted in 6.0.14 changelog.

The size of backup_history.backup_file was increased from 100 to 255
characters to reduce the chance of file name truncation when logging
backup or restore operations.