Bug #47129 Testprogram "mysqltest" cannot use "perl;" on Windows
Submitted: 4 Sep 2009 10:46 Modified: 18 Dec 2009 23:54
Reporter: Joerg Bruehe Email Updates:
Status: Closed Impact on me:
None 
Category:Tools: MTR / mysql-test-run Severity:S3 (Non-critical)
Version:5.4.2-beta OS:Windows (32 + 64 bit)
Assigned to: Magnus Blåudd CPU Architecture:Any

[4 Sep 2009 10:46] Joerg Bruehe
Description:
Happened iin the 5.4.2-beta release build:

=====
binlog.binlog_stm_unsafe_warning 'stmt'  [ retry-fail ]
        Test ended at YYYY-MM-DD HH:MM:SS

CURRENT_TEST: binlog.binlog_stm_unsafe_warning
Unable to open : No such file or directory
mysqltest: At line NNN: command "perl" failed with error 2

The result from queries just before the failure was:
< snip >
DROP DATABASE b42851;
USE test;
#
# Bug#46265: Can not disable warning about unsafe statements for binary logging
#
SET @old_log_warnings = @@log_warnings;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(10));
SET GLOBAL LOG_WARNINGS = 0;
INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
Warnings:
Note    1592    Statement may not be safe to log in statement format.
SET GLOBAL LOG_WARNINGS = 1;
INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
Warnings:
Note    1592    Statement may not be safe to log in statement format.
DROP TABLE t1;
SET GLOBAL log_warnings = @old_log_warnings;
# Count the number of times the "Unsafe" message was printed
# to the error log.

More results from queries before failure can be found in /PATH/mysql-test/var/log/binlog_stm_unsafe_warning.lo
g

 - saving '/PATH/mysql-test/var/log/binlog.binlog_stm_unsafe_warning-stmt/' to '/PATH/mysql-test/var/log/binlo
g.binlog_stm_unsafe_warning-stmt/'

Test has failed 2 times, no more retries!
=====

How to repeat:
Run it on Windows.
[17 Sep 2009 0:10] Sergey Petrunya
We've hit this on MariaDB 5.1 also, and also on Windows.

The problem isn't with the 'perl' command, it is as follows:

test>
test>let LOG_ERROR= `SELECT @@GLOBAL.log_error`;  -- (1)
test>
test>--echo # Count the number of times the "Unsafe" message was printed
test>--echo # to the error log.
test>
test>perl;
test>  $log_error= $ENV{'LOG_ERROR'}; 
test>  open(FILE, "$log_error") or die("Unable to open $log_error: $!\n");--(2) 

One gets error at (2), because the environment variable is empty. The environment variable is empty because mysql-test-run.pl adds '--console' to server options on Windows. '--console' negates the effect of '--log-error' option from binlog_stm_unsafe_warning-master.opt.

I've worked around this by changing mysql-test-run.pl in a manner similar to this:

@@ -4433,7 +4433,9 @@
   if (IS_WINDOWS)
   {
     # Trick the server to send output to stderr, with --console
-    mtr_add_arg($args, "--console");
+    if (!(join(' ', @$args) =~ /--log-error/)) {
+      mtr_add_arg($args, "--console");
+    }
   }
[8 Oct 2009 10:10] 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/86118
[8 Oct 2009 11:26] Magnus Blåudd
Pushed to 5.1-bugteam and 5.1-telco-7.0
[8 Oct 2009 12: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/86143
[14 Oct 2009 14:39] Bugs System
Pushed into 5.1.41 (revid:joro@sun.com-20091014143611-cphb0enjlx6lpat1) (version source revid:satya.bn@sun.com-20091013071829-zc4c3go44j6re592) (merge vers: 5.1.40) (pib:13)
[14 Oct 2009 15:17] Paul DuBois
Test suite change. No changelog entry needed.

Setting report to NDI pending push into 5.5.x+.
[21 Oct 2009 16:14] Joerg Bruehe
Still in 5.1.40, but the push to 5.1.41 gives hope.

Fixed my silly typo in the "synopsis" field.
[22 Oct 2009 6:34] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091022063126-l0qzirh9xyhp0bpc) (version source revid:alik@sun.com-20091019135554-s1pvptt6i750lfhv) (merge vers: 6.0.14-alpha) (pib:13)
[22 Oct 2009 7:06] Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091022060553-znkmxm0g0gm6ckvw) (version source revid:alik@sun.com-20091019131708-bc6pv55x6287a0wc) (merge vers: 5.5.0-beta) (pib:13)
[22 Oct 2009 19:21] Paul DuBois
Test suite change. No changelog entry needed.
[18 Dec 2009 10:30] Bugs System
Pushed into 5.1.41-ndb-7.1.0 (revid:jonas@mysql.com-20091218102229-64tk47xonu3dv6r6) (version source revid:jonas@mysql.com-20091218095730-26gwjidfsdw45dto) (merge vers: 5.1.41-ndb-7.1.0) (pib:15)
[18 Dec 2009 10:46] Bugs System
Pushed into 5.1.41-ndb-6.2.19 (revid:jonas@mysql.com-20091218100224-vtzr0fahhsuhjsmt) (version source revid:jonas@mysql.com-20091217101452-qwzyaig50w74xmye) (merge vers: 5.1.41-ndb-6.2.19) (pib:15)
[18 Dec 2009 11:01] Bugs System
Pushed into 5.1.41-ndb-6.3.31 (revid:jonas@mysql.com-20091218100616-75d9tek96o6ob6k0) (version source revid:jonas@mysql.com-20091217154335-290no45qdins5bwo) (merge vers: 5.1.41-ndb-6.3.31) (pib:15)
[18 Dec 2009 11:15] Bugs System
Pushed into 5.1.41-ndb-7.0.11 (revid:jonas@mysql.com-20091218101303-ga32mrnr15jsa606) (version source revid:jonas@mysql.com-20091218064304-ezreonykd9f4kelk) (merge vers: 5.1.41-ndb-7.0.11) (pib:15)