Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-24178

main.upgrade_MDEV-19650 test fails: Result length mismatch

Details

    Description

      $ ./mtr main.upgrade_MDEV-19650
      Logging: /var/tmp/portage/dev-db/mariadb-10.5.7/work/mysql/mysql-test/mysql-test-run.pl  main.upgrade_MDEV-19650
      vardir: /var/tmp/portage/dev-db/mariadb-10.5.7/work/mariadb-10.5.7_build/mysql-test/var
      Checking leftover processes...
      Removing old var directory...
      Creating var directory '/var/tmp/portage/dev-db/mariadb-10.5.7/work/mariadb-10.5.7_build/mysql-test/var'...
      Checking supported features...
      MariaDB Version 10.5.7-MariaDB
       - SSL connections supported
      Collecting tests...
      Installing system database...
       
      ==============================================================================
       
      TEST                                      RESULT   TIME (ms) or COMMENT
      --------------------------------------------------------------------------
       
      worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
      main.upgrade_MDEV-19650                  [ pass ]    203
       
      MTR's internal check of the test case 'main.upgrade_MDEV-19650' 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 '/var/tmp/portage/dev-db/mariadb-10.5.7/work/mariadb-10.5.7_build/mysql-test/var/tmp/check-mysqld_1.log'.
      mysqltest: Results saved in '/var/tmp/portage/dev-db/mariadb-10.5.7/work/mariadb-10.5.7_build/mysql-test/var/tmp/check-mysqld_1.result'.
      mysqltest: Connecting to server localhost:16000 (socket /var/tmp/portage/dev-db/mariadb-10.5.7/work/mariadb-10.5.7_build/mysql-test/var/tmp/mysqld.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.
      --- /var/tmp/portage/dev-db/mariadb-10.5.7/work/mariadb-10.5.7_build/mysql-test/var/tmp/check-mysqld_1.result   2020-11-09 17:37:18.467067549 -0000
      +++ /var/tmp/portage/dev-db/mariadb-10.5.7/work/mariadb-10.5.7_build/mysql-test/var/tmp/check-mysqld_1.reject   2020-11-09 17:37:18.710405616 -0000
      @@ -727,37 +727,37 @@
       mysql.user     Host    1       ''      NO      char    60      180     NULL    NULL    utf8    utf8_bin        char(60)
       mysql.user     User    2       ''      NO      char    80      240     NULL    NULL    utf8    utf8_bin        char(80)
       mysql.user     Password        3       NULL    YES     longtext        4294967295      4294967295      NULL    NULL    utf8mb4 utf8mb4_bin     longtext
      -mysql.user     Select_priv     4       NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Insert_priv     5       NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Update_priv     6       NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Delete_priv     7       NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Create_priv     8       NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Drop_priv       9       NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Reload_priv     10      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Shutdown_priv   11      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Process_priv    12      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     File_priv       13      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Grant_priv      14      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     References_priv 15      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Index_priv      16      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Alter_priv      17      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Show_db_priv    18      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Super_priv      19      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Create_tmp_table_priv   20      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Lock_tables_priv        21      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Execute_priv    22      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Repl_slave_priv 23      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Repl_client_priv        24      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Create_view_priv        25      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Show_view_priv  26      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Create_routine_priv     27      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Alter_routine_priv      28      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Create_user_priv        29      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Event_priv      30      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Trigger_priv    31      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Create_tablespace_priv  32      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     Delete_history_priv     33      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     ssl_type        34      NULL    YES     varchar 9       27      NULL    NULL    utf8    utf8_general_ci varchar(9)
      +mysql.user     Select_priv     4       NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Insert_priv     5       NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Update_priv     6       NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Delete_priv     7       NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Create_priv     8       NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Drop_priv       9       NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Reload_priv     10      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Shutdown_priv   11      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Process_priv    12      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     File_priv       13      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Grant_priv      14      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     References_priv 15      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Index_priv      16      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Alter_priv      17      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Show_db_priv    18      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Super_priv      19      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Create_tmp_table_priv   20      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Lock_tables_priv        21      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Execute_priv    22      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Repl_slave_priv 23      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Repl_client_priv        24      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Create_view_priv        25      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Show_view_priv  26      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Create_routine_priv     27      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Alter_routine_priv      28      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Create_user_priv        29      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Event_priv      30      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Trigger_priv    31      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Create_tablespace_priv  32      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     Delete_history_priv     33      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     ssl_type        34      NULL    YES     varchar 9       9       NULL    NULL    latin1  latin1_swedish_ci       varchar(9)
       mysql.user     ssl_cipher      35      ''      NO      longtext        4294967295      4294967295      NULL    NULL    utf8mb4 utf8mb4_bin     longtext
       mysql.user     x509_issuer     36      ''      NO      longtext        4294967295      4294967295      NULL    NULL    utf8mb4 utf8mb4_bin     longtext
       mysql.user     x509_subject    37      ''      NO      longtext        4294967295      4294967295      NULL    NULL    utf8mb4 utf8mb4_bin     longtext
      @@ -767,8 +767,8 @@
       mysql.user     max_user_connections    41      0       NO      bigint  NULL    NULL    19      0       NULL    NULL    bigint(21)
       mysql.user     plugin  42      ''      NO      longtext        4294967295      4294967295      NULL    NULL    utf8mb4 utf8mb4_bin     longtext
       mysql.user     authentication_string   43      ''      NO      longtext        4294967295      4294967295      NULL    NULL    utf8mb4 utf8mb4_bin     longtext
      -mysql.user     password_expired        44      ''      NO      varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      -mysql.user     is_role 45      NULL    YES     varchar 1       3       NULL    NULL    utf8    utf8_general_ci varchar(1)
      +mysql.user     password_expired        44      ''      NO      varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
      +mysql.user     is_role 45      NULL    YES     varchar 1       1       NULL    NULL    latin1  latin1_swedish_ci       varchar(1)
       mysql.user     default_role    46      ''      NO      longtext        4294967295      4294967295      NULL    NULL    utf8mb4 utf8mb4_bin     longtext
       mysql.user     max_statement_time      47      0.000000        NO      decimal NULL    NULL    12      6       NULL    NULL    decimal(12,6)
       EVENT_CATALOG  EVENT_SCHEMA    EVENT_NAME      DEFINER TIME_ZONE       EVENT_BODY      EVENT_DEFINITION        EVENT_TYPE      EXECUTE_AT      INTERVAL_VALUEINTERVAL_FIELD  SQL_MODE        STARTS  ENDS    STATUS  ON_COMPLETION   CREATED LAST_ALTERED    LAST_EXECUTED   EVENT_COMMENT   ORIGINATOR      CHARACTER_SET_CLIENT  COLLATION_CONNECTION    DATABASE_COLLATION
       
      mysqltest: Result length mismatch
       
      not ok
       
      --------------------------------------------------------------------------
      The servers were restarted 0 times
      Spent 0.203 of 2 seconds executing testcases
       
      Check of testcase failed for: main.upgrade_MDEV-19650
       
      Completed: All 1 tests were successful.
      

      Attachments

        Issue Links

          Activity

            could you fix the test instead? Perhaps just resetting the charset to the default from inside the test could do the trick

            serg Sergei Golubchik added a comment - could you fix the test instead? Perhaps just resetting the charset to the default from inside the test could do the trick
            anel Anel Husakovic added a comment - - edited

            Hi serg,
            in previous patch in commit message I showed that all global variables are set to default latin1 in mtr

            select @@character_set_client;
            @@character_set_client
            latin1
            select @@character_set_server;
            @@character_set_server
            latin1
            select @@character_set_connection;
            @@character_set_connection
            latin1
            select @@character_set_results;
            @@character_set_results
            latin1
            select @@collation_server;
            @@collation_server
            latin1_swedish_ci
            select @@collation_database;
            @@collation_database
            latin1_swedish_ci
            select @@collation_connection;
            @@collation_connection
            latin1_swedish_ci
            

            I tried to SET NAMES latin1 before CREATE DEFINER in the test (where the view from mysql.global_priv) is created, but no effect.
            There is already statement --exec $MYSQL_UPGRADE --force 2>&1 (where --default-character-set=latin1 should be invoked by default), but I don't see change in mysql.user table.
            Manually adding option --default-character-set=latin1 to mysql_upgrade also doesn't work.
            I tried something like this:

            SELECT CHARACTER_SET_CLIENT, COLLATION_CONNECTION
            FROM INFORMATION_SCHEMA.VIEWS
            WHERE TABLE_SCHEMA='mysql' AND TABLE_NAME='user';
            CHARACTER_SET_CLIENT	COLLATION_CONNECTION
            utf8	utf8_general_ci
            # RUN UPGRADE
            CHEMA.VIEWS
            WHERE TABLE_SCHEMA='mysql' AND TABLE_NAME='user';
            CHARACTER_SET_CLIENT	COLLATION_CONNECTION
            latin1	latin1_swedish_ci
            main.anel1                               [ pass ]    322
            MTR's internal check of the test case 'main.anel1' failed.
            ...
            

            What are other options to try?

            anel Anel Husakovic added a comment - - edited Hi serg , in previous patch in commit message I showed that all global variables are set to default latin1 in mtr select @@character_set_client; @@character_set_client latin1 select @@character_set_server; @@character_set_server latin1 select @@character_set_connection; @@character_set_connection latin1 select @@character_set_results; @@character_set_results latin1 select @@collation_server; @@collation_server latin1_swedish_ci select @@collation_database; @@collation_database latin1_swedish_ci select @@collation_connection; @@collation_connection latin1_swedish_ci I tried to SET NAMES latin1 before CREATE DEFINER in the test (where the view from mysql.global_priv ) is created, but no effect. There is already statement --exec $MYSQL_UPGRADE --force 2>&1 (where --default-character-set=latin1 should be invoked by default), but I don't see change in mysql.user table. Manually adding option --default-character-set=latin1 to mysql_upgrade also doesn't work. I tried something like this: SELECT CHARACTER_SET_CLIENT, COLLATION_CONNECTION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' ; CHARACTER_SET_CLIENT COLLATION_CONNECTION utf8 utf8_general_ci # RUN UPGRADE CHEMA.VIEWS WHERE TABLE_SCHEMA= 'mysql' AND TABLE_NAME= 'user' ; CHARACTER_SET_CLIENT COLLATION_CONNECTION latin1 latin1_swedish_ci main.anel1 [ pass ] 322 MTR 's internal check of the test case ' main.anel1' failed. ... What are other options to try?

            anel, right, so the charset is changed by mysql_upgrade. mysql_upgrade runs mysql using mysql_fix_privileges.sql script and the statement that creates the view is exactly the same as is used on bootstrap. In the debugger you could see that mysql is invoked with --default-character-set=latin1, that comes from var/my.cnf that comes from include/default_client.cnf. That is, all tests use latin1. But bootstrap is invoked without specifying a charset, so it uses the compilation default. The fix should be

            --- a/mysql-test/mysql-test-run.pl
            +++ b/mysql-test/mysql-test-run.pl
            @@ -3257,6 +3257,7 @@ sub mysql_install_db {
               mtr_add_arg($args, "--tmpdir=%s", "$opt_vardir/tmp/");
               mtr_add_arg($args, "--core-file");
               mtr_add_arg($args, "--console");
            +  mtr_add_arg($args, "--character-set-server=latin1");
             
               if ( $opt_debug )
               {
            

            Please see if it needs to be pushed into 10.4 or earlier and then push.

            serg Sergei Golubchik added a comment - anel , right, so the charset is changed by mysql_upgrade . mysql_upgrade runs mysql using mysql_fix_privileges.sql script and the statement that creates the view is exactly the same as is used on bootstrap. In the debugger you could see that mysql is invoked with --default-character-set=latin1 , that comes from var/my.cnf that comes from include/default_client.cnf . That is, all tests use latin1. But bootstrap is invoked without specifying a charset, so it uses the compilation default. The fix should be --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -3257,6 +3257,7 @@ sub mysql_install_db { mtr_add_arg($args, "--tmpdir=%s", "$opt_vardir/tmp/"); mtr_add_arg($args, "--core-file"); mtr_add_arg($args, "--console"); + mtr_add_arg($args, "--character-set-server=latin1"); if ( $opt_debug ) { Please see if it needs to be pushed into 10.4 or earlier and then push.

            Thanks serg, I found 6 affected test cases

            main.information_schema funcs_1.is_columns_mysql main.lock_view main.sp2 main.system_mysql_db main.gis_notembedded
            

            Will check what is the first affected version and will push.

            anel Anel Husakovic added a comment - Thanks serg , I found 6 affected test cases main.information_schema funcs_1.is_columns_mysql main.lock_view main.sp2 main.system_mysql_db main.gis_notembedded Will check what is the first affected version and will push.

            Pushed to 10.2 with a82209ca31684a5f .

            anel Anel Husakovic added a comment - Pushed to 10.2 with a82209ca31684a5f .

            People

              anel Anel Husakovic
              whissi Thomas Deutschmann
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.