| Bug #50313 | The test backup_thd_delete has non-deterministic output | ||
|---|---|---|---|
| Submitted: | 13 Jan 2010 18:43 | Modified: | 25 Feb 2010 1:38 |
| Reporter: | Chuck Bell | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Backup | Severity: | S3 (Non-critical) |
| Version: | 6.0.14 | OS: | Any |
| Assigned to: | Chuck Bell | CPU Architecture: | Any |
[13 Jan 2010 18:49]
Chuck Bell
According to the original bug that created this test, BUG#49342, the test tests a crash condition and not a specific state of the threads in question. Therefore, I conclude the output of the SHOW PROCESSLIST is not important and should be masked for deterministic test behavior.
[13 Jan 2010 18:54]
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/96811 2934 Chuck Bell 2010-01-13 BUG#50313 : The test backup_thd_delete has non-deterministic output The output of SHOW PROCESSLIST can be deterministic on some machines depending on load and timing of the test sequences. This patch masks the output of SHOW PROCESSLIST to avoid capture of additional processes and states in the output. @ mysql-test/suite/backup/t/backup_thd_delete.test Mask output of SHOW PROCESSLIST. Does not require a new result file.
[14 Jan 2010 10:10]
Ingo Strüwing
Please apply a few changes to the patch as discussed on IRC.
[14 Jan 2010 14:12]
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/96902 2934 Chuck Bell 2010-01-14 BUG#50313 : The test backup_thd_delete has non-deterministic output The output of SHOW PROCESSLIST can be deterministic on some machines depending on load and timing of the test sequences. This patch masks the output of SHOW PROCESSLIST to avoid capture of additional processes and states in the output. @ mysql-test/suite/backup/t/backup_thd_delete.test Mask output of SHOW PROCESSLIST. Does not require a new result file. Added missing reap.
[14 Jan 2010 14:56]
Ingo Strüwing
Approved with request.
[14 Jan 2010 15: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/96916 2934 Chuck Bell 2010-01-14 BUG#50313 : The test backup_thd_delete has non-deterministic output The output of SHOW PROCESSLIST can be non-deterministic on some machines depending on load and timing of the test sequences. The output of SHOW PROCESSLIST is irrelevant for the test anyway. We just need to prove that it doesn't crash. @ mysql-test/suite/backup/t/backup_thd_delete.test Mask output of SHOW PROCESSLIST. Does not require a new result file. Added missing reap.
[14 Jan 2010 15:07]
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/96919 3063 Chuck Bell 2010-01-14 Merge of BUG#50313.
[20 Feb 2010 9:18]
Bugs System
Pushed into 6.0.14-alpha (revid:ingo.struewing@sun.com-20100218152520-s4v1ld76bif06eqn) (version source revid:ingo.struewing@sun.com-20100119194038-2cmbu0p2x2t6dxmj) (merge vers: 6.0.14-alpha) (pib:16)
[25 Feb 2010 1:38]
Paul DuBois
Changes to test case. No changelog entry needed.

Description: The test backup_thd_delete has non-deterministic output in pushbuild. The test fails with: backup.backup_thd_delete [ fail ] Test ended at 2010-01-12 17:02:00 CURRENT_TEST: backup.backup_thd_delete --- /export/home4/pb2/test/sb_2-1169289-1263280831.48/mysql-6.0.14-alpha-linux-x86_64-test/mysql-test/suite/backup/r/backup_thd_delete.result 2010-01-12 02:01:09.000000000 +0300 +++ /export/home4/pb2/test/sb_2-1169289-1263280831.48/mysql-6.0.14-alpha-linux-x86_64-test/mysql-test/suite/backup/r/backup_thd_delete.reject 2010-01-12 19:02:00.000000000 +0300 @@ -33,4 +33,8 @@ # Cleanup. # SET DEBUG_SYNC= 'reset'; +Id User Host db Command Time State Info +498 root localhost db1 Query 1 Writing to net BACKUP DATABASE db1 TO 'db1.bkp' +499 root localhost test Query 0 NULL SHOW PROCESSLIST +500 system user NULL Killed 0 MyISAM backup: terminating MyISAM driver locking thread DROP DATABASE db1; mysqltest: Result length mismatch ...or something similar... The offending command is the SHOW PROCESSLIST from line#60 in the test. # # Arrange for SHOW PROCESSLIST to stop in the middle of its operation, when # it is enumerating processes, and signal BACKUP to continue. When BACKUP # terminates, the locking thread will terminate as well and will delete its # THD instance. # SET DEBUG_SYNC= 'sql_show_locked SIGNAL finish_backup WAIT_FOR finish_show'; send SHOW PROCESSLIST; In this case, we issue a send SHOW PROCESSLIST and later connect with reap. The point of this is to allow the debug sync point to be reached. So it is either a fault of the test originally that the output of SHOW PROCESSLIST is not checked or the output of the command is of no consequence and should be masked. How to repeat: Run the test repeatedly or on a system under heavy load like valgrind. Suggested fix: Mask the output of SHOW PROCESSLIST or extract the pertinent information (e.g. the backup thread is deleted). NOTE: This test also fails in the backport tree so the solution should be merged to the back port tree.