Bug #80292 Check of testcase failed for: ndb.ndbinfo_upgrade
Submitted: 5 Feb 2016 19:39 Modified: 18 Feb 2016 18:35
Reporter: Mauritz Sundell Email Updates:
Status: Closed Impact on me:
None 
Category:Tests: Cluster Severity:S3 (Non-critical)
Version:7.5 OS:Any
Assigned to: CPU Architecture:Any

[5 Feb 2016 19:39] Mauritz Sundell
Description:
Test ndb.ndbinfo_upgrade passes but fails the post test run checks:

Check of testcase failed for: ndb.ndbinfo_upgrade.

This since after the call to mysql_upgrade all ndbinfo tables are created with character set utf8mb4 instead of the original latin1.

A workaround is to add --default-character-set=latin1 to the call of mysql_upgrade, but that feels like the wrong approach.

One can also note that the the ndbinfo database default charset is latin1:
show create database ndbinfo;
Database       Create Database
ndbinfo        CREATE DATABASE `ndbinfo` /*!40100 DEFAULT CHARACTER SET latin1 */

How to repeat:
Run: ./mtr ndb.ndbinfo_upgrade

ndb.ndbinfo_upgrade                      [ pass ]    969

MTR's internal check of the test case 'ndb.ndbinfo_upgrade' failed.
This means that the test case does not preserve the state that existed
before the test case was executed.  Most likely the test case did not
do a proper clean-up. It could also be caused by the previous test run
by this thread, if the server wasn't restarted.
This is the diff of the states of the servers before and after the
test case was executed:
mysqltest: Logging to '/home/msundell/dev/mysql-7.5-wl8817/bld/mysql-test/var/tmp/check-mysqld_1_1.log'.
mysqltest: Results saved in '/home/msundell/dev/mysql-7.5-wl8817/bld/mysql-test/var/tmp/check-mysqld_1_1.result'.
mysqltest: Connecting to server localhost:13001 (socket /home/msundell/dev/mysql-7.5-wl8817/bld/mysql-test/var/tmp/mysqld.1.1.sock) as 'root', connection 'default', attempt 0 ...
mysqltest: ... Connected.
mysqltest: Start processing test commands from './include/check-testcase.test' ...
mysqltest: ... Done processing test commands.
--- /home/msundell/dev/mysql-7.5-wl8817/bld/mysql-test/var/tmp/check-mysqld_1_1.result  2016-02-05 22:14:12.948482255 +0300
+++ /home/msundell/dev/mysql-7.5-wl8817/bld/mysql-test/var/tmp/check-mysqld_1_1.reject  2016-02-05 22:14:16.103482386 +0300
@@ -2961,34 +2961,34 @@
  1 row in set (0.00 sec)
        mysql.sys@localhost     utf8    utf8_general_ci utf8_general_ci
 TABLE_CATALOG  TABLE_SCHEMA    TABLE_NAME      VIEW_DEFINITION CHECK_OPTION    IS_UPDATABLE    DEFINER SECURITY_TYPE   CHARACTER_SET_CLIENT    COLLATION_CONNECTION
-def    ndbinfo arbitrator_validity_detail       ... ot@localhost       INVOKER latin1  latin1_swedish_ci
-def    ndbinfo arbitrator_validity_summary ... ot@localhost    INVOKER latin1  latin1_swedish_ci
-def    ndbinfo blocks  select `ndbinfo`.`nd ... ot@localhost   INVOKER latin1  latin1_swedish_ci
-def    ndbinfo cluster_operations      select ` ... ot@localhost       INVOKER latin1  latin1_swedish_ci
-def    ndbinfo cluster_transactions    select ... ot@localhost INVOKER latin1  latin1_swedish_ci
-def    ndbinfo config_params   select `ndbin ... ot@localhost  INVOKER latin1  latin1_swedish_ci
-def    ndbinfo config_values   select `ndbin ... ot@localhost  INVOKER latin1  latin1_swedish_ci
-def    ndbinfo counters        select `c`.`node_i ... ot@localhost     INVOKER latin1  latin1_swedish_ci
-def    ndbinfo dict_obj_types  select `ndbi ... ot@localhost   INVOKER latin1  latin1_swedish_ci
-def    ndbinfo disk_write_speed_aggregate       ... ot@localhost       INVOKER latin1  latin1_swedish_ci
-def    ndbinfo disk_write_speed_aggregate_ ... ot@localhost    INVOKER latin1  latin1_swedish_ci
-def    ndbinfo disk_write_speed_base   selec ... ot@localhost  INVOKER latin1  latin1_swedish_ci
-def    ndbinfo diskpagebuffer  select `ndbi ... ot@localhost   INVOKER latin1  latin1_swedish_ci
-def    ndbinfo logbuffers      select `ndbinfo` ... ot@localhost       INVOKER latin1  latin1_swedish_ci
-def    ndbinfo logspaces       select `ndbinfo`. ... ot@localhost      INVOKER latin1  latin1_swedish_ci
-def    ndbinfo membership      select `ndbinfo` ... ot@localhost       INVOKER latin1  latin1_swedish_ci
-def    ndbinfo memory_per_fragment     select  ... ot@localhost        INVOKER latin1  latin1_swedish_ci
-def    ndbinfo memoryusage     select `ndbinfo ... ot@localhost        INVOKER latin1  latin1_swedish_ci
-def    ndbinfo nodes   select `ndbinfo`.`ndb ... ot@localhost  INVOKER latin1  latin1_swedish_ci
-def    ndbinfo operations_per_fragment sel ... ot@localhost    INVOKER latin1  latin1_swedish_ci
-def    ndbinfo resources       select `ndbinfo`. ... ot@localhost      INVOKER latin1  latin1_swedish_ci
-def    ndbinfo restart_info    select `ndbinf ... ot@localhost INVOKER latin1  latin1_swedish_ci
-def    ndbinfo server_operations       select `m ... ot@localhost      INVOKER latin1  latin1_swedish_ci
-def    ndbinfo server_transactions     select  ... ot@localhost        INVOKER latin1  latin1_swedish_ci
-def    ndbinfo tc_time_track_stats     select  ... ot@localhost        INVOKER latin1  latin1_swedish_ci
-def    ndbinfo threadblocks    select `t`.`no ... ot@localhost INVOKER latin1  latin1_swedish_ci
-def    ndbinfo threadstat      select `ndbinfo` ... ot@localhost       INVOKER latin1  latin1_swedish_ci
-def    ndbinfo transporters    select `ndbinf ... ot@localhost INVOKER latin1  latin1_swedish_ci
+def    ndbinfo arbitrator_validity_detail       ... @localhost INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo arbitrator_validity_summary ... @localhost      INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo blocks  select `ndbinfo`.`nd ... @localhost     INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo cluster_operations      select ` ... @localhost INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo cluster_transactions    select ... @localhost   INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo config_params   select `ndbin ... @localhost    INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo config_values   select `ndbin ... @localhost    INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo counters        select `c`.`node_i ... @localhost       INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo dict_obj_types  select `ndbi ... @localhost     INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo disk_write_speed_aggregate       ... @localhost INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo disk_write_speed_aggregate_ ... @localhost      INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo disk_write_speed_base   selec ... @localhost    INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo diskpagebuffer  select `ndbi ... @localhost     INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo logbuffers      select `ndbinfo` ... @localhost INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo logspaces       select `ndbinfo`. ... @localhost        INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo membership      select `ndbinfo` ... @localhost INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo memory_per_fragment     select  ... @localhost  INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo memoryusage     select `ndbinfo ... @localhost  INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo nodes   select `ndbinfo`.`ndb ... @localhost    INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo operations_per_fragment sel ... @localhost      INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo resources       select `ndbinfo`. ... @localhost        INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo restart_info    select `ndbinf ... @localhost   INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo server_operations       select `m ... @localhost        INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo server_transactions     select  ... @localhost  INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo tc_time_track_stats     select  ... @localhost  INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo threadblocks    select `t`.`no ... @localhost   INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo threadstat      select `ndbinfo` ... @localhost INVOKER utf8mb4 utf8mb4_general_ci
+def    ndbinfo transporters    select `ndbinf ... @localhost   INVOKER utf8mb4 utf8mb4_general_ci

Suggested fix:
Make sure mysql_upgrade and mysql_install_db and other ways to create the ndbinfo tables uses the same table default character sets.
[16 Feb 2016 21:11] Mauritz Sundell
Posted by developer:
 
Patch approved.  Possibly adding --force to mysql_upgrade too make double run of test work.

Problem with double runs of ndb.ndbinfo_upgrade is in 7.4 too.
Reason it passes with 7.5 is that mtr restarts processes due to the testcase check failed.

diff --git a/mysql-test/suite/ndb/t/ndbinfo_upgrade.test b/mysql-test/suite/ndb/t/ndbinfo_upgrade.test
index 418e7fe..9c3f514 100644
--- a/mysql-test/suite/ndb/t/ndbinfo_upgrade.test
+++ b/mysql-test/suite/ndb/t/ndbinfo_upgrade.test
@@ -30,7 +30,7 @@ DROP TABLE ndbinfo.ndb$nodes;
 SELECT COUNT(*) FROM nodes;

 let $log_file = $MYSQLTEST_VARDIR/tmp/ndbinfo_upgrade_check.log;
---exec $MYSQL_UPGRADE --skip-verbose > $log_file 2>&1
+--exec $MYSQL_UPGRADE --force --skip-verbose > $log_file 2>&1

 # The underlying table should have been created and nodes view be readable
 SELECT COUNT(*) FROM nodes;
[18 Feb 2016 18:35] Jon Stephens
Fixed in NDB 7.5.1. Appears to be a change in testing only, with no user-faces changes to document. Closed.