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

spider/bugfix.return_found_rows_update wrongly depends on /etc/mysql contents

    XMLWordPrintable

    Details

      Description

      A Spider test wrongly depends on the contents of /etc/mysql/mariadb.conf.d. On my Debian GNU/Linux Sid (unstable) system, I had files in that directory installed by the following packages:

      sudo apt purge mariadb-common mariadb-client-10.3
      ./mtr spider/bugfix.return_found_rows_update
      sudo apt install mariadb-common mariadb-client-10.3
      ./mtr spider/bugfix.return_found_rows_update
      

      The two files /etc/mysql/mariadb.conf.d/50-client.cnf and /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf include the setting

      default-character-set = utf8mb4
      

      which affects the test result. Side note: I will need the following fix in order to be able to compile Spider using clang++-10. It would fail due to {{ -Wsometimes-uninitialized}}:

      diff --git a/storage/spider/spd_db_conn.cc b/storage/spider/spd_db_conn.cc
      index afdd3a4c828..7b61678dabd 100644
      --- a/storage/spider/spd_db_conn.cc
      +++ b/storage/spider/spd_db_conn.cc
      @@ -5861,6 +5861,7 @@ int spider_db_simple_action(
       #endif
           default:
             DBUG_ASSERT(0);
      +      error_num= -1;
             break;
         }
         DBUG_RETURN(error_num);
      

      The test fails for me with the following result difference:

      CURRENT_TEST: spider/bugfix.return_found_rows_update
      --- /mariadb/10.4/storage/spider/mysql-test/spider/bugfix/r/return_found_rows_update.result	2020-02-06 12:50:30.534105414 +0200
      +++ /mariadb/10.4/storage/spider/mysql-test/spider/bugfix/r/return_found_rows_update.reject	2020-03-24 08:55:55.829888665 +0200
      @@ -48,7 +48,7 @@
       connection child2_1;
       SELECT argument FROM mysql.general_log WHERE argument LIKE '%update %';
       argument
      -update `auto_test_remote`.`tbl_a` set `tm` = _latin1'12:00:00' where (`skey` = 0)
      +update `auto_test_remote`.`tbl_a` set `tm` = _utf8mb4'12:00:00' where (`skey` = 0)
       SELECT argument FROM mysql.general_log WHERE argument LIKE '%update %'
       SELECT skey, dt, tm FROM tbl_a ORDER BY skey;
       skey	dt	tm
       
      mysqltest: Result length mismatch
      

      If I purge the packages from Debian, then the test would pass.
      Apparently, this test is not being run on buildbot, because the buildbot cross-reference has no data on this test.

        Attachments

          Activity

            People

            Assignee:
            marko Marko Mäkelä
            Reporter:
            marko Marko Mäkelä
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: