Bug #50167 backup_triggers_and_events fails with: "backup wait timeout has expired for..."
Submitted: 8 Jan 2010 0:18 Modified: 11 Jan 2013 12:23
Reporter: Luis Soares Email Updates:
Status: Unsupported Impact on me:
None 
Category:Tests: Backup Severity:S3 (Non-critical)
Version:5.6.0 (mysql-backup-backport) OS:Any
Assigned to: Luis Soares CPU Architecture:Any
Tags: backport, Backup
Triage: Triaged: D2 (Serious)

[8 Jan 2010 0:18] Luis Soares
Description:
In the current state of affairs of backup backport, the test
backup_triggers_and_events is failing with the following output:

[...]

CURRENT_TEST: backup.backup_triggers_and_events
mysqltest: At line 537: query 'reap' failed: 1766: The backup wait timeout has expired for query 'UPDATE bup_trigevt_backup.t1_same
SET   c2='UPDATE bup_trigevt_backup.t1_same'
               WHERE c2='INSERT bup_trigevt_backup.t1_same''.

[...]

Stepping into the execution one finds that while in 
"Backup_sx_lock::get_shared_lock" the value for
thd->backup_wait_timeout is suspiciously very big.

This probably suggests that the variable thd->backup_wait_timeout
is not properly initialized.

How to repeat:
1. bzr clone -r revid:charles.bell@sun.com-20100107142613-tj1gbdmwiyje9f7e $URL_TO_BZR_REPO/mysql-backup-backport
2. cd mysql-backup-backport
3. bash BUILD/compile-pentium64-debug-max
4. cd mysql-test
5. perl mysql-test-run.pl backup.backup_triggers_and_events

The test will then fail with the symptom reported.

Suggested fix:
=== modified file 'sql/sql_class.cc'
--- sql/sql_class.cc	2009-12-30 17:12:16 +0000
+++ sql/sql_class.cc	2010-01-08 00:10:07 +0000
@@ -464,6 +464,7 @@
    derived_tables_processing(FALSE),
    spcont(NULL),
    m_parser_state(NULL),
+   backup_wait_timeout(BACKUP_WAIT_TIMEOUT_DEFAULT),
 #if defined(ENABLED_DEBUG_SYNC)
    debug_sync_control(0),
 #endif /* defined(ENABLED_DEBUG_SYNC) */
[8 Jan 2010 0:31] 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/96338

3039 Luis Soares	2010-01-08
      BUG#50167: backup_triggers_and_events fails with: "backup wait
      timeout has expired for..."
      
      The test fails because the THD::backup_wait_timeout variable is
      not initialized with default value (BACKUP_WAIT_TIMEOUT_DEFAULT).
      
      It seems that a small portion of some patch was not backported
      properly. In particular, the one that affects the last hunk for
      this cset:
      
      tree: mysql-6.0-backup
      revision-id: ingo.struewing@sun.com-20081216115134-zot1nv8bix0ixk2h
      
      Originally, backup_wait_timeout had been introduced by patch:
      
      tree: mysql-6.0-backup
      revision-id: revision-id: cbell@mysql.com-20080819153529-2q1xr9zeam8iltai
      
      and later changed by the cset mentioned in the first place. Maybe
      that caused bigger entropy while handling the backport and the
      small part of the patch was inadvertently missed/forgotten/left
      out...
      
      We fix this by deploying the missing initialization of
      backup_wait_timeout with the default value.
[8 Jan 2010 11:01] 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/96362

3039 Luis Soares	2010-01-08
      BUG#50167: backup_triggers_and_events fails with: "backup wait
      timeout has expired for..."
            
      The test fails because the THD::backup_wait_timeout variable is
      not initialized with default value (BACKUP_WAIT_TIMEOUT_DEFAULT).
            
      It seems that a small portion of some patch was not backported
      properly. In particular, the one that affects the last hunk for
      this cset:
            
      tree: mysql-6.0-backup
      revision-id: ingo.struewing@sun.com-20081216115134-zot1nv8bix0ixk2h
            
      Originally, backup_wait_timeout had been introduced by patch:
            
      tree: mysql-6.0-backup
      revision-id: revision-id: cbell@mysql.com-20080819153529-2q1xr9zeam8iltai
            
      and later changed by the cset mentioned in the first place. Maybe
      that caused bigger entropy while handling the backport and the
      small part of the patch was inadvertently missed/forgotten/left
      out...
            
      We fix this by deploying the missing initialization of
      backup_wait_timeout with the default value.
      
      NOTE: this was done by applying original patch:
            revid: ingo.struewing@sun.com-20081216115134-zot1nv8bix0ixk2h
            against the mysql-backup-backport tree and solving the conflicts.
[8 Jan 2010 11:09] Ingo Strüwing
Approved. No second reviewer needed. It's a merge of an existing revision.
[8 Jan 2010 11:35] 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/96372

3043 Luis Soares	2010-01-08 [merge]
      BUG#50167: merge to latest branch.
      
      Seems a cset has merged recently part of this patch, ie,
      the one that dealt with BACKUP_WAIT_TIMEOUT_DEFAULT.
      
      So this merge is just for the remaining hunk.
[8 Jan 2010 11:41] Luis Soares
Queued in mysql-backup-backport.
Push: http://pb2.norway.sun.com/web.py?template=push_details&push=819075