Bug #76957 Tests in binlog suite fail with very long paths
Submitted: 6 May 2015 15:23 Modified: 13 May 2016 16:35
Reporter: Justin Tolmer Email Updates:
Status: Closed Impact on me:
None 
Category:Tools: MTR / mysql-test-run Severity:S3 (Non-critical)
Version:5.6.23 OS:Linux
Assigned to: CPU Architecture:Any

[6 May 2015 15:23] Justin Tolmer
Description:
When the mysql-test directory is in a very long path, binlog.binlog_killed and binlog.binlog_stm_mix_innodb_myisam fail due to result mismatch errors because their load_file lines get truncated. Fix by giving the output a shorter column name.

@@ -102,7 +102,7 @@
(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
is not null;
(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
-is not null
+is not nul
1
select 0 /* must return 0 to mean the killed update is in */;
0
@@ -140,7 +140,7 @@
(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
is not null;
(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
-is not null
+is not nul
1
select 0 /* must return 0 to mean the killed delete is in */;
0

mysqltest: Result content mismatch

How to repeat:
Clone the git repository into a very long path, build, run the 2 mentioned tests.

Suggested fix:
Change the .test files from:

   eval select
   (@a:=load_file("$MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
   is not null;

to:

   eval select
   (@a:=load_file("$MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
   is not null AS 'Loaded';

so that the column name isn't so long and doesn't get truncated.
[6 May 2015 18:20] MySQL Verification Team
Hello Justin Tolmer,

Thank you for the report.

Thanks,
Umesh
[6 May 2015 18:21] MySQL Verification Team
//

[umshastr@hod03]/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test: ./mtr binlog.binlog_killed
Logging: /export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/mysql-test/mysql-test-run.pl  binlog.binlog_killed
2015-05-06 20:15:04 4975 [Note] Plugin 'FEDERATED' is disabled.
2015-05-06 20:15:04 4975 [Note] Binlog end
2015-05-06 20:15:04 4975 [Note] Shutting down plugin 'CSV'
2015-05-06 20:15:04 4975 [Note] Shutting down plugin 'MyISAM'
MySQL Version 5.6.23
Too long tmpdir path '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/tmp'  creating a shorter one...
 - using tmpdir: '/tmp/A7x9KX2YF3'

Checking supported features...
 - SSL connections supported
Collecting tests...
 - adding combinations for binlog
Removing old var directory...
Creating var directory '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var'...
Installing system database...

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
binlog.binlog_killed 'mix'               [ skipped ]  Doesn't support --binlog-format='mixed'
binlog.binlog_killed 'row'               [ skipped ]  Doesn't support --binlog-format='row'
binlog.binlog_killed 'stmt'              [ fail ]
        Test ended at 2015-05-06 20:15:07

CURRENT_TEST: binlog.binlog_killed
--- /export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/mysql-test/suite/binlog/r/binlog_killed.result     2015-01-19 16:48:30.000000000 +0300
+++ /export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/log/binlog_killed.reject    2015-05-06 21:15:07.544766517 +0300
@@ -101,8 +101,7 @@
 select
 (@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
 is not null;
-(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
-is not null
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug
 1
 select 0 /* must return 0 to mean the killed update is in */;
 0
@@ -139,8 +138,7 @@
 select
 (@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
 is not null;
-(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
-is not null
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug
 1
 select 0 /* must return 0 to mean the killed delete is in */;
 0

mysqltest: Result content mismatch

 - saving '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/log/binlog.binlog_killed-stmt/' to '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/log/binlog.binlog_killed-stmt/'
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 0.000 of 3 seconds executing testcases

Completed: Failed 1/1 tests, 0.00% were successful.

Failing test(s): binlog.binlog_killed

The log files in var/log may give you some hint of what went wrong.

If you want to report this error, please read first the documentation
at http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html

2 tests were skipped, 0 by the test itself.

mysql-test-run: *** ERROR: there were failing test cases
[umshastr@hod03]/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test:
[6 May 2015 18:22] MySQL Verification Team
//

[umshastr@hod03]/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test: ./mtr binlog.binlog_stm_mix_innodb_myisam
Logging: /export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/mysql-test/mysql-test-run.pl  binlog.binlog_stm_mix_innodb_myisam
2015-05-06 20:16:56 5385 [Note] Plugin 'FEDERATED' is disabled.
2015-05-06 20:16:56 5385 [Note] Binlog end
2015-05-06 20:16:56 5385 [Note] Shutting down plugin 'CSV'
2015-05-06 20:16:56 5385 [Note] Shutting down plugin 'MyISAM'
MySQL Version 5.6.23
Too long tmpdir path '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/tmp'  creating a shorter one...
 - using tmpdir: '/tmp/nHIT8FYJFu'

Checking supported features...
 - SSL connections supported
Collecting tests...
 - adding combinations for binlog
Checking leftover processes...
Removing old var directory...
Creating var directory '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var'...
Installing system database...

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
binlog.binlog_stm_mix_innodb_myisam 'mix' [ skipped ]  Doesn't support --binlog-format='mixed'
binlog.binlog_stm_mix_innodb_myisam 'row' [ skipped ]  Doesn't support --binlog-format='row'
binlog.binlog_stm_mix_innodb_myisam 'stmt' [ fail ]
        Test ended at 2015-05-06 20:17:03

CURRENT_TEST: binlog.binlog_stm_mix_innodb_myisam
--- /export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result      2015-01-19 16:48:30.000000000 +0300
+++ /export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/log/binlog_stm_mix_innodb_myisam.reject     2015-05-06 21:17:03.609098630 +0300
@@ -443,8 +443,7 @@
 select
 (@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
 is not null;
-(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
-is not null
+(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam
 1
 select
 @a like "%#%error_code=0%ROLLBACK\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR

mysqltest: Result content mismatch

 - saving '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/log/binlog.binlog_stm_mix_innodb_myisam-stmt/' to '/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test/var/log/binlog.binlog_stm_mix_innodb_myisam-stmt/'
--------------------------------------------------------------------------
The servers were restarted 0 times
Spent 0.000 of 7 seconds executing testcases

Completed: Failed 1/1 tests, 0.00% were successful.

Failing test(s): binlog.binlog_stm_mix_innodb_myisam

The log files in var/log may give you some hint of what went wrong.

If you want to report this error, please read first the documentation
at http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html

2 tests were skipped, 0 by the test itself.

mysql-test-run: *** ERROR: there were failing test cases
[umshastr@hod03]/export/umesh/server/source/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/Tests_in_binlog_suite_fail_with_very_long_paths/bug76957/mysql-5.6.23/Tests_in_binlog_suite_fail_with_very_long_paths/mysql-test:
[7 May 2015 16:27] Justin Tolmer
I've found a few additional tests that have the same problem:

binlog.binlog_killed_simulate
binlog.binlog_sql_mode
main.mysqlbinlog
[13 May 2016 16:35] Paul DuBois
Posted by developer:
 
Fixed in 5.6.32.

Work was done for test suite. No changelog entry needed.