Bug #43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0
Submitted: 27 Feb 2009 14:50 Modified: 5 Aug 2009 8:54
Reporter: Patrick Crews Email Updates:
Status: Closed Impact on me:
None 
Category:Tests: Replication Severity:S3 (Non-critical)
Version:5.0 only OS:Any
Assigned to: Alfranio Junior CPU Architecture:Any
Tags: pushbuild, random failure, rpl_trigger, test failure, Tests

[27 Feb 2009 14:50] Patrick Crews
Description:
Test rpl_trigger is failing randomly on Pushbuild.

So far, the failure appears to be on Windows only, but it is possible that it will occur on other OS's (why OS is marked any).

The test is failing with the same symptoms of 
Bug#38603	rpl_trigger failed on pushbuild inside 'copy_file' call.

The fix for the above bug corrected this issue in 5.1+, but the utilities used there are not present in the 5.0 trees.  However, these random failures need to be corrected.  This is a rpl-team decision / fix.

rpl_trigger                    [ fail ]

mysqltest: At line 297: command "copy_file" failed with error 1

The result from queries just before the failure was:
< snip >
UPDATE t11 SET f1=1 where f1=-1;
SELECT * from t11 /* must be f1 5 ... 1 */;
f1
5
<snip_by_bug_reporter>
drop trigger trg11;
drop table t21,t31;
drop table t11;
STOP SLAVE;
FLUSH LOGS;

More results from queries before failure can be found in e:\var-ps_stm-101\log\rpl_trigger.log

How to repeat:
This is a random failure, but appears to be only on Windows at the moment:
https://intranet.mysql.com/secure/pushbuild/xref.pl?startdate=&enddate=&dir=&plat=&testtyp...

Also, we know what the problems are as it is a problem from an earlier bug that wasn't corrected in 5.0

Suggested fix:
Either correct the test via workaround / backport the 5.1 facilities used to fix this bug in 5.1+ / deprecate the test in 5.0 / remove this subtest / etc.

I am not certain what the best way to proceed is, so this is an rpl-team call.
[12 Jun 2009 3:28] Alfranio Junior
The problem stems from the fact that MySQL on Windows does not immediately unlock/release a file while the process that opened and closed it is still running. In BUG#38603, this issue was circumvented by stopping the MySQL process,
copying the file and then restarting the MySQL process.

In my opinion, backporting the 5.1 facilities to do such operations (i.e. stop and start) is not an option as this requires to change the mysqltest/mtr. In the 5.0, I think we should either remove the part of the test that is causing errors or disable the execution on Windows. 

The patch below, disable the execution on Windows.
[12 Jun 2009 3:37] 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/76154

2770 Alfranio Correia	2009-06-12
      BUG#43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0
      
      Disabled the rpl_trigger on Windows due to the lack of mysqltest/mtr's
      facilities to make it run properly.
      
      The test case fails sporadically on Windows while trying to overwrite an unused
      binary log. The problem stems from the fact that MySQL on Windows does not
      immediately unlock/release a file while the process that opened and closed it is
      still running. In BUG#38603, this issue was circumvented by stopping the MySQL
      process, copying the file and then restarting the MySQL process. Unfortunately,
      such facilities are not available in the 5.0.
[21 Jul 2009 16:48] 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/79111

2789 Alfranio Correia	2009-07-21
      BUG#43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0
      
      Used mysqlbinlog to mimic replication on Windows, in a sub-set of this
      test case, due to the lack of mysqltest/mtr's facilities to make it run
      properly.
      
      The test case fails sporadically on Windows while trying to overwrite an unused
      binary log. The problem stems from the fact that MySQL on Windows does not
      immediately unlock/release a file while the process that opened and closed it is
      still running. In BUG 38603, this issue was circumvented by stopping the MySQL
      process, copying the file and then restarting the MySQL process. Unfortunately,
      such facilities are not available in the 5.0.
[2 Aug 2009 22:59] 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/79851

2789 Alfranio Correia	2009-08-02
      BUG#43264 Test rpl_trigger is failing randomly w/ use of copy_file in 5.0
      
      The test case fails sporadically on Windows while trying to overwrite an unused
      binary log. The problem stems from the fact that MySQL on Windows does not
      immediately unlock/release a file while the process that opened and closed it is
      still running. In BUG 38603, this issue was circumvented by stopping the MySQL
      process, copying the file and then restarting the MySQL process. 
      
      Unfortunately, such facilities are not available in the 5.0.  Other approaches
      such as stopping the slave and issuing change master do not work because the relay
      log file and index are not closed when a slave is stopped. So to fix the problem,
      we simply don't run on windows the part of the test that was failing.
[3 Aug 2009 13:38] 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/79885

2796 Alfranio Correia	2009-08-03
      Post-fix for BUG#43264
      
      Install procedure does not copy *.inc files located under the mysql-test/t directory.
      Therefore, this patch moves the rpl_trigger.inc to the mysql-test/include directory.
[4 Aug 2009 13:56] Bugs System
Pushed into 5.0.85 (revid:davi.arnaut@sun.com-20090804135315-6lfdnk4zjwk7kn7r) (version source revid:davi.arnaut@sun.com-20090804135315-6lfdnk4zjwk7kn7r) (merge vers: 5.0.85) (pib:11)
[4 Aug 2009 19:51] Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090804194615-h40sa098mx4z49qg) (version source revid:alfranio.correia@sun.com-20090803151750-qsbpkryl6d69kynh) (merge vers: 5.4.4-alpha) (pib:11)
[4 Aug 2009 20:45] Bugs System
Pushed into 5.1.38 (revid:davi.arnaut@sun.com-20090804204317-ggodqkik7de6nfpz) (version source revid:davi.arnaut@sun.com-20090804204317-ggodqkik7de6nfpz) (merge vers: 5.1.38) (pib:11)
[5 Aug 2009 8:54] Jon Stephens
Changes in tests only, no user-facing effects to document. Closed.
[1 Oct 2009 5:58] Bugs System
Pushed into 5.1.39-ndb-6.3.28 (revid:jonas@mysql.com-20091001055605-ap2kiaarr7p40mmv) (version source revid:jonas@mysql.com-20091001055605-ap2kiaarr7p40mmv) (merge vers: 5.1.39-ndb-6.3.28) (pib:11)
[1 Oct 2009 7:25] Bugs System
Pushed into 5.1.39-ndb-7.0.9 (revid:jonas@mysql.com-20091001072547-kv17uu06hfjhgjay) (version source revid:jonas@mysql.com-20091001071652-irejtnumzbpsbgk2) (merge vers: 5.1.39-ndb-7.0.9) (pib:11)
[1 Oct 2009 13:25] Bugs System
Pushed into 5.1.39-ndb-7.1.0 (revid:jonas@mysql.com-20091001123013-g9ob2tsyctpw6zs0) (version source revid:jonas@mysql.com-20091001123013-g9ob2tsyctpw6zs0) (merge vers: 5.1.39-ndb-7.1.0) (pib:11)
[5 Oct 2009 10:50] Bugs System
Pushed into 5.1.39-ndb-6.2.19 (revid:jonas@mysql.com-20091005103850-dwij2dojwpvf5hi6) (version source revid:jonas@mysql.com-20090930185117-bhud4ek1y0hsj1nv) (merge vers: 5.1.39-ndb-6.2.19) (pib:11)