Bug #33568 Backup: crash if many databases in list
Submitted: 29 Dec 2007 0:36 Modified: 11 Aug 2008 20:19
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: Jørgen Løland CPU Architecture:Any

[29 Dec 2007 0:36] Peter Gulutzan
Description:
I can say BACKUP DATABASE list-of-databases ...
I put many database names in list-of-databases.
Crash.

How to repeat:
drop database wa;
create database wa;
backup database wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa to '/usr/local/mysql/var/t30';
[29 Dec 2007 5:51] MySQL Verification Team
Thank you for the bug report.

mysql1>backup database
    -> wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,
    -> wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa,wa to '/home/miguel/dbs/6.0b/var/t30';
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql1>
[19 Jun 2008 9:06] Jørgen Løland
On my machine, the limit for successful backup is 17 database:

create database db1;
create database db2;
create database db3;
create database db4;
create database db5;
create database db6;
create database db7;
create database db8;
create database db9;
create database db10;
create database db11;
create database db12;
create database db13;
create database db14;
create database db15;
create database db16;
create database db17;
create database db18;
create database db19;
create database db20;

backup database db1, db2, db3, db4, db5, db6, db7, db8, db9, db10, db11, db12, db13, db14, db15, db16, db17 to 'manybups.bak';

completes whereas 

backup database db1, db2, db3, db4, db5, db6, db7, db8, db9, db10, db11, db12, db13, db14, db15, db16, db17, db18 to 'manybups.bak';

crashes as described.
[20 Jun 2008 8:32] 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/48221

2638 Jorgen Loland	2008-06-20
      Bug#33568 - "Backup: crash if many databases in list"
      
      DYNAMIC_ARRAY is 0 based and needs to allocate new elements when 
      position == max_elements, not when position > max_elements
[23 Jun 2008 18:18] Chuck Bell
Patch approved.
[24 Jun 2008 7:50] Jørgen Løland
The problem that a database is backed up multiple times if mentioned multiple times in the sql is reported in bug#37586
[25 Jun 2008 8:03] 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/48446

2639 Jorgen Loland	2008-06-25 [merge]
      bug#33568 - "Backup: crash if many databases in list"
      
      DYNAMIC_ARRAY is 0 based and needs to allocate new elements when 
            position == max_elements, not when position > max_elements
      
      Also includes commit of merge
[25 Jun 2008 8:04] 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/48447

2639 Jorgen Loland	2008-06-25 [merge]
      bug#33568 - "Backup: crash if many databases in list"
      
      DYNAMIC_ARRAY is 0 based and needs to allocate new elements when 
            position == max_elements, not when position > max_elements
      
      Also includes commit of merge
[8 Aug 2008 15:40] Paul DuBois
Fix is pushed in 6.0.7.
[11 Aug 2008 20:19] Paul DuBois
Noted in 6.0.7 changelog.

If a large number of databases were named in the BACKUP DATABASE
statement, the server crashed.
[13 Sep 2008 22:02] Bugs System
Pushed into 6.0.6-alpha  (revid:jorgen.loland@sun.com-20080625080601-ga2ke2jgtftlsq63) (version source revid:hakan@mysql.com-20080716105246-eg0utbybp122n2w9) (pib:3)