| Bug #50846 | BACKPORT: Locking tests failing in pushbuild tree | ||
|---|---|---|---|
| Submitted: | 2 Feb 2010 18:44 | Modified: | 10 Feb 2010 20:23 | 
| Reporter: | Chuck Bell | Email Updates: | |
| Status: | Patch queued | Impact on me: | |
| Category: | MySQL Server: Backup | Severity: | S3 (Non-critical) | 
| Version: | 5.4.4 | OS: | Any | 
| Assigned to: | Assigned Account | CPU Architecture: | Any | 
   [5 Feb 2010 14:54]
   Chuck Bell        
  Chuck assumes the bug since Rafal is sick -- get well soon, Rafal!
   [5 Feb 2010 15:31]
   Chuck Bell        
  These tests share a common sync point which is not being reached: wait_for_lock. I will ask the runtime team to confirm that this sequence is no longer reached and ask for a equivalent wait point.
   [5 Feb 2010 15:47]
   Chuck Bell        
  It has been confirmed the wait_for_lock() code is no longer called when locking tables for write. Thus, we must remove this sync point from the tests.
   [5 Feb 2010 16:36]
   Chuck Bell        
  Removing the wait_for_lock sync point works, but results in non-deterministic values for the IS.PROCESSLIST since the lock is not in a separate thread.
   [9 Feb 2010 16:20]
   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/99751 3086 Chuck Bell 2010-02-09 BUG#50846 : BACKPORT: Locking tests failing in pushbuild tree The locking tests that use the wait_for_lock sync point in the old server locking code fail because the method wait_for_lock() has been replaced with the new MDL code. This patch introduces a new sync point in the new MDL code for synchronizing the locking tests. @ mysql-test/suite/backup/r/backup_myisam_sync.result Corrected result file. @ mysql-test/suite/backup/r/backup_restore_locking.result Corrected result file. @ mysql-test/suite/backup/t/backup_myisam_sync.test Changed test to use new sync point in mdl code. @ mysql-test/suite/backup/t/backup_restore_locking.test Changed test to use new sync point in mdl code. Commented out non-deterministic show processlist call -- this was due to change in how locking is done in the server with the new MDL locking code. @ sql/mdl.cc Added sync point for restore locking tests.
   [10 Feb 2010 13:22]
   Thava Alagu        
  Good to push.
   [10 Feb 2010 17:09]
   Ritheesh Vedire        
  Patch Approved
   [10 Feb 2010 20:18]
   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/99874 3087 Chuck Bell 2010-02-10 BUG#50846 : BACKPORT: Locking tests failing in pushbuild tree The locking tests that use the wait_for_lock sync point in the old server locking code fail because the method wait_for_lock() has been replaced with the new MDL code. This patch introduces a new sync point in the new MDL code for synchronizing the locking tests. @ mysql-test/suite/backup/r/backup_myisam_sync.result Corrected result file. @ mysql-test/suite/backup/r/backup_restore_locking.result Corrected result file. @ mysql-test/suite/backup/t/backup_myisam_sync.test Changed test to use new sync point in mdl code. @ mysql-test/suite/backup/t/backup_restore_locking.test Changed test to use new sync point in mdl code. Commented out non-deterministic show processlist call -- this was due to change in how locking is done in the server with the new MDL locking code. @ sql/mdl.cc Added sync point for restore locking tests.
   [10 Feb 2010 20:23]
   Chuck Bell        
  Patch queued to mysql-next-mr-backup and mysql-backup-backport.

Description: There are two tests failing in the pushbuild tree. These tests did not fail before we merged in the new MDL locking code. Both are timeouts on the debug sync points. The tests are backup_myisam_sync and backup_restore_locking. Fails consistently on Ubuntu, Mac, Windows local builds but not in all PB machines. Sample failure results: backup.backup_myisam_sync [ fail ] Test ended at 2010-02-02 02:37:54 CURRENT_TEST: backup.backup_myisam_sync 'diff' is not recognized as an internal or external command, operable program or batch file. --- H:/pb2/test/sb_2-1278083-1265068782.34/mysql-5.6.0-beta-win-x86-test/mysql-test/suite/backup/r/backup_myisam_sync.result 2010-02-02 02:15:45.000000000 +0300 +++ H:\pb2\test\sb_2-1278083-1265068782.34\mysql-5.6.0-beta-win-x86-test\mysql-test\suite\backup\r\backup_myisam_sync.reject 2010-02-02 04:37:54.431206600 +0300 @@ -120,6 +120,7 @@ backup_id ### Warnings: +### 1639 debug sync point wait timed out ### 1036 Table 't1' is read only ### 1213 Deadlock found when trying to get lock; try restarting transaction # mysqltest: Result length mismatch backup.backup_restore_locking [ fail ] timeout after 900 seconds Test ended at 2010-02-02 01:58:51 Test case timeout after 900 seconds == H:/pb2/test/sb_2-1278083-1265068782.34/mysql-5.6.0-beta-win-x86-test/mysql-test/var-n_mix/log/backup_restore_locking.log == SIGNAL waiting WAIT_FOR continue'; RESTORE FROM 'bup_reslock_db1.bak'; # # connection con1 SET DEBUG_SYNC= 'now WAIT_FOR waiting'; SET DEBUG_SYNC= 'wait_for_lock SIGNAL lock_wait'; INSERT INTO bup_reslock_db1.t1 VALUES(1,"after_lock_tables"); # # connection con2 SET DEBUG_SYNC= 'now WAIT_FOR lock_wait'; Warnings: Warning 1639 debug sync point wait timed out SET DEBUG_SYNC= 'now SIGNAL continue WAIT_FOR waiting'; SET DEBUG_SYNC= 'wait_for_lock SIGNAL lock_wait'; INSERT INTO bup_reslock_db1.t1 VALUES(2,"after_truncate_tables"); # # connection con3 SET DEBUG_SYNC= 'now WAIT_FOR lock_wait'; Warnings: Warning 1639 debug sync point wait timed out == H:/pb2/test/sb_2-1278083-1265068782.34/mysql-5.6.0-beta-win-x86-test/mysql-test/var-n_mix/tmp/analyze-timeout-mysqld.1.err == SHOW PROCESSLIST; Id User Host db Command Time State Info 66 root localhost:55159 test Query 299 debug sync point: now SET DEBUG_SYNC= 'now SIGNAL continue WAIT_FOR waiting' 67 root localhost:55234 NULL Query 0 NULL SHOW PROCESSLIST == H:/pb2/test/sb_2-1278083-1265068782.34/mysql-5.6.0-beta-win-x86-test/mysql-test/var-n_mix/tmp/analyze-timeout-mysqld.2.err == SHOW PROCESSLIST; Id User Host db Command Time State Info 24 root localhost:55235 NULL Query 0 NULL SHOW PROCESSLIST How to repeat: ./mysql-test-run.pl backup_myisam_sync backup_restore_locking Suggested fix: Unknown.