1. 17 Apr, 2021 1 commit
    • Alexey Yurchenko's avatar
      MDEV-25359 : Improve mariabackup SST script compliance with native MariaDB SSL... · fd9ca569
      Alexey Yurchenko authored
      MDEV-25359 : Improve mariabackup SST script compliance with native MariaDB SSL practices and configuration.
      
      1. Pass joiner's authentication information to donor together with address
         in State Transfer Request. This allows joiner to authenticate donor on
         connection. Previously joiner would accept data from anywhere.
      
      2. Deprecate custom SSL configuration variables tca, tcert and tkey in favor
         of more familiar ssl-ca, ssl-cert and ssl-key. For backward compatibility
         tca, tcert and tkey are still supported.
      
      3. Allow falling back to server-wide SSL configuration in [mysqld] if no SSL
         configuration is found in [sst] section of the config file.
      
      4. Introduce ssl-mode variable in [sst] section that takes standard values
         and has following effects:
          - old-style SSL configuration present in [sst]: no effect
            otherwise:
          - ssl-mode=DISABLED or absent: retains old, backward compatible behavior
            and ignores any other SSL configuration
          - ssl-mode=VERIFY*: verify joiner's certificate and CN on donor,
                              verify donor's secret on joiner
                              (passed to donor via State Transfer Request)
                              BACKWARD INCOMPATIBLE BEHAVIOR
          - anything else enables new SSL configuration convetions but does not
            require verification
      
          ssl-mode should be set to VERIFY only in a fully upgraded cluster.
      
          Examples:
      
          [mysqld]
          ssl-cert=/path/to/cert
          ssl-key=/path/to/key
          ssl-ca=/path/to/ca
      
          [sst]
      
           -- server-wide SSL configuration is ignored, SST does not use SSL
      
          [mysqld]
          ssl-cert=/path/to/cert
          ssl-key=/path/to/key
          ssl-ca=/path/to/ca
      
          [sst]
          ssl-mode=REQUIRED
      
           -- use server-wide SSL configuration for SST but don't attempt to
              verify the peer identity
      
          [sst]
          ssl-cert=/path/to/cert
          ssl-key=/path/to/key
          ssl-ca=/path/to/ca
          ssl-mode=VERIFY_CA
      
           -- use SST-specific SSL configuration for SST and require verification
              on both sides
      Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
      fd9ca569
  2. 16 Apr, 2021 11 commits
    • Sergei Petrunia's avatar
      Cleanup: fake_select_lex->select_number=FAKE_SELECT_LEX_ID, not [U]INT_MAX · 2656e876
      Sergei Petrunia authored
      SELECT_LEX objects that are "fake_select_lex" (i.e read UNION output)
      used both INT_MAX and UINT_MAX as select_number.
      - mysql_explain_union() assigned UINT_MAX
      - st_select_lex_unit::add_fake_select_lex assigned INT_MAX
      
      This didn't matter initially (before EXPLAIN FORMAT=JSON), because the
      code  had no checks for this value.
      
      EXPLAIN FORMAT=JSON and later other features did introduce checks for
      select_number values. The check had to check for two constants and
      looked really confusing.
      
      This patch joins the two constants into one - FAKE_SELECT_LEX_ID.
      2656e876
    • Daniel Black's avatar
      3f138fa3
    • Daniel Black's avatar
      Merge branch '10.5' into 10.6 · f862f39f
      Daniel Black authored
      f862f39f
    • Daniel Black's avatar
      Revert "Deb: Use build flag to enforce default charset as utf8mb4" · fce3e4ee
      Daniel Black authored
      This reverts commit f26e3259.
      fce3e4ee
    • Otto Kekäläinen's avatar
      Deb: Update Conflicts/Replaces/Replaces for all upgrade scenarios · 62f5a4f0
      Otto Kekäläinen authored
      Update the debian/control file so that upgrades from basically any previous
      version of MariaDB, MySQL or even Percona will run smoothly.
      
      Based on extensive testing with all Debian and Ubuntu repos from past 5 years
      enabled, and also having MariaDB.org, MySQL.com and Percona.com repos enabled.
      
      Used tool check_for_missing_breaks_replaces.py from Salsa-CI to verify.
      
      Fixes the following errors:
      [ERROR] libmariadb-dev conflicts with libmariadb-client-lgpl-dev files: {'/usr/include/mariadb/mysql_version.h', '/usr/include/mariadb/errmsg.h', '/usr/share/man/man1/mariadb_config.1.gz', '/usr/include/mariadb/my_sys.h', '/usr/include/mariadb/mysqld_error.h', '/usr/include/mariadb/my_config.h', '/usr/lib/x86_64-linux-gnu/libmariadb.so', '/usr/lib/x86_64-linux-gnu/libmariadb.a', '/usr/include/mariadb/mysql.h', '/usr/include/mariadb/my_global.h', '/usr/include/mariadb/mysql/plugin_auth_common.h', '/usr/include/mariadb/mysql/plugin_auth.h', '/usr/include/mariadb/mysql_com.h', '/usr/bin/mariadb_config', '/usr/include/mariadb/mysql/client_plugin.h'}
      [ERROR] libmariadb-dev conflicts with libmariadb-dev-compat files: {'/usr/share/man/man1/mysql_config.1.gz'}
      [ERROR] mariadb-backup conflicts with mariadb-client-10.1 files: {'/usr/bin/mariabackup', '/usr/bin/mbstream'}
      [ERROR] mariadb-client-10.6 conflicts with percona-server-server-5.6 files: {'/usr/share/man/man1/mysqlbinlog.1.gz', '/usr/bin/perror', '/usr/share/man/man1/mysqlhotcopy.1.gz', '/usr/share/man/man1/mysql_setpermission.1.gz', '/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz', '/usr/share/man/man1/replace.1.gz', '/usr/share/man/man1/mysql_convert_table_format.1.gz', '/usr/bin/replace', '/usr/share/man/man1/resolve_stack_dump.1.gz', '/usr/share/man/man1/perror.1.gz', '/usr/bin/msql2mysql', '/usr/share/man/man1/mysql_secure_installation.1.gz', '/usr/share/man/man1/msql2mysql.1.gz', '/usr/bin/resolve_stack_dump'}
      [ERROR] mariadb-client-10.6 conflicts with percona-xtradb-cluster-server-5.6 files: {'/usr/share/man/man1/mysqlbinlog.1.gz', '/usr/bin/perror', '/usr/share/man/man1/mysqlhotcopy.1.gz', '/usr/share/man/man1/mysql_setpermission.1.gz', '/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz', '/usr/share/man/man1/replace.1.gz', '/usr/share/man/man1/mysql_convert_table_format.1.gz', '/usr/bin/replace', '/usr/share/man/man1/resolve_stack_dump.1.gz', '/usr/share/man/man1/perror.1.gz', '/usr/bin/msql2mysql', '/usr/share/man/man1/mysql_secure_installation.1.gz', '/usr/share/man/man1/msql2mysql.1.gz', '/usr/bin/resolve_stack_dump'}
      [ERROR] mariadb-client-10.6 conflicts with percona-xtradb-cluster-server-5.7 files: {'/usr/share/man/man1/mysqlbinlog.1.gz', '/usr/bin/perror', '/usr/share/man/man1/replace.1.gz', '/usr/share/man/man1/mysql_tzinfo_to_sql.1.gz', '/usr/share/man/man1/mysql_plugin.1.gz', '/usr/bin/replace', '/usr/share/man/man1/resolve_stack_dump.1.gz', '/usr/share/man/man1/perror.1.gz', '/usr/share/man/man1/mysql_secure_installation.1.gz', '/usr/bin/resolve_stack_dump'}
      [ERROR] mariadb-client-core-10.6 conflicts with mariadb-server-10.1 files: {'/usr/bin/my_print_defaults', '/usr/share/man/man1/my_print_defaults.1.gz'}
      [ERROR] mariadb-client-core-10.6 conflicts with percona-server-server-5.6 files: {'/usr/bin/my_print_defaults', '/usr/share/man/man1/my_print_defaults.1.gz'}
      [ERROR] mariadb-client-core-10.6 conflicts with percona-xtradb-cluster-server-5.6 files: {'/usr/bin/my_print_defaults', '/usr/share/man/man1/my_print_defaults.1.gz'}
      [ERROR] mariadb-client-core-10.6 conflicts with percona-xtradb-cluster-server-5.7 files: {'/usr/bin/my_print_defaults', '/usr/share/man/man1/my_print_defaults.1.gz'}
      [ERROR] mariadb-plugin-connect conflicts with mariadb-connect-engine-10.0 files: {'/usr/lib/mysql/plugin/ha_connect.so'}
      [ERROR] mariadb-plugin-oqgraph conflicts with mariadb-oqgraph-engine-10.0 files: {'/usr/lib/mysql/plugin/ha_oqgraph.so'}
      [ERROR] mariadb-server-10.6 conflicts with handlersocket-mysql-5.5 files: {'/usr/lib/mysql/plugin/handlersocket.so'}
      [ERROR] mariadb-server-10.6 conflicts with percona-server-server-5.6 files: {'/usr/bin/myisampack', '/usr/lib/mysql/plugin/handlersocket.so', '/usr/share/mysql/errmsg-utf8.txt', '/usr/share/man/man1/myisamlog.1.gz', '/usr/share/man/man1/mysqld_multi.1.gz', '/usr/share/mysql/debian-start.inc.sh', '/usr/share/man/man1/myisamchk.1.gz', '/usr/bin/mysqlbinlog', '/usr/bin/mysql_convert_table_format', '/usr/lib/mysql/plugin/query_response_time.so', '/usr/bin/mysql_tzinfo_to_sql', '/usr/bin/mysql_setpermission', '/usr/bin/myisamchk', '/usr/share/man/man1/myisampack.1.gz', '/usr/lib/mysql/plugin/auth_pam.so', '/usr/bin/mysql_secure_installation', '/usr/bin/mysqld_multi', '/usr/share/man/man1/mysqld_safe.1.gz', '/usr/bin/mysqld_safe', '/usr/bin/myisamlog', '/usr/bin/mysqlhotcopy'}
      [ERROR] mariadb-server-10.6 conflicts with percona-xtradb-cluster-server-5.6 files: {'/usr/bin/wsrep_sst_mysqldump', '/usr/bin/myisampack', '/usr/lib/mysql/plugin/handlersocket.so', '/usr/share/mysql/errmsg-utf8.txt', '/usr/share/man/man1/myisamlog.1.gz', '/usr/share/man/man1/mysqld_multi.1.gz', '/usr/share/mysql/debian-start.inc.sh', '/usr/share/man/man1/myisamchk.1.gz', '/usr/bin/mysqlbinlog', '/usr/bin/wsrep_sst_common', '/usr/bin/mysql_convert_table_format', '/usr/lib/mysql/plugin/query_response_time.so', '/usr/share/mysql/wsrep_notify', '/usr/bin/mysql_tzinfo_to_sql', '/usr/bin/mysql_setpermission', '/usr/bin/myisamchk', '/usr/share/man/man1/myisampack.1.gz', '/usr/lib/mysql/plugin/auth_pam.so', '/usr/bin/mysql_secure_installation', '/usr/bin/mysqld_multi', '/usr/share/man/man1/mysqld_safe.1.gz', '/usr/bin/wsrep_sst_rsync', '/usr/bin/mysqld_safe', '/usr/bin/myisamlog', '/usr/bin/mysqlhotcopy'}
      [ERROR] mariadb-server-10.6 conflicts with percona-xtradb-cluster-server-5.7 files: {'/usr/bin/wsrep_sst_mysqldump', '/usr/bin/myisampack', '/usr/share/mysql/errmsg-utf8.txt', '/usr/share/man/man1/myisamlog.1.gz', '/usr/share/man/man1/mysqld_multi.1.gz', '/usr/share/man/man1/myisamchk.1.gz', '/usr/bin/mysql_plugin', '/usr/bin/mysqlbinlog', '/usr/bin/wsrep_sst_common', '/usr/lib/mysql/plugin/query_response_time.so', '/usr/share/mysql/wsrep_notify', '/usr/bin/mysql_tzinfo_to_sql', '/lib/systemd/system/mysql.service', '/usr/bin/myisamchk', '/usr/share/man/man1/myisampack.1.gz', '/usr/lib/mysql/plugin/auth_pam.so', '/usr/bin/mysql_secure_installation', '/usr/bin/mysqld_multi', '/usr/share/man/man1/mysqld_safe.1.gz', '/usr/bin/wsrep_sst_rsync', '/usr/bin/mysqld_safe', '/usr/bin/myisamlog'}
      [ERROR] mariadb-server-core-10.6 conflicts with mariadb-server-10.0 files: {'/usr/share/mysql/mysql_system_tables.sql', '/usr/bin/resolveip', '/usr/share/mysql/mysql_system_tables_data.sql', '/usr/share/mysql/mysql_performance_tables.sql', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/man/man1/mysql_upgrade.1.gz', '/usr/share/mysql/fill_help_tables.sql', '/usr/share/man/man1/resolveip.1.gz', '/usr/share/man/man1/mysql_install_db.1.gz', '/usr/bin/mysql_install_db', '/usr/bin/mysql_upgrade'}
      [ERROR] mariadb-server-core-10.6 conflicts with mariadb-server-10.1 files: {'/usr/share/mysql/mysql_system_tables.sql', '/usr/bin/resolveip', '/usr/share/mysql/mysql_system_tables_data.sql', '/usr/share/mysql/mysql_performance_tables.sql', '/usr/share/mysql/fill_help_tables.sql', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/mysql/maria_add_gis_sp_bootstrap.sql', '/usr/share/man/man1/resolveip.1.gz'}
      [ERROR] mariadb-server-core-10.6 conflicts with mariadb-server-10.1 files: {'/usr/share/man/man1/resolveip.1.gz', '/usr/share/mysql/fill_help_tables.sql', '/usr/share/mysql/mysql_system_tables_data.sql', '/usr/share/mysql/mysql_performance_tables.sql', '/usr/share/mysql/mysql_system_tables.sql', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/mysql/maria_add_gis_sp_bootstrap.sql', '/usr/bin/resolveip'}
      [ERROR] mariadb-server-core-10.6 conflicts with mysql-client-5.5 files: {'/usr/bin/innochecksum'}
      [ERROR] mariadb-server-core-10.6 conflicts with mysql-server-5.5 files: {'/usr/share/man/man1/resolveip.1.gz', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/man/man1/innochecksum.1.gz', '/usr/bin/resolveip'}
      [ERROR] mariadb-server-core-10.6 conflicts with percona-server-server-5.6 files: {'/usr/share/mysql/russian/errmsg.sys', '/usr/share/mysql/charsets/armscii8.xml', '/usr/share/mysql/charsets/latin5.xml', '/usr/share/mysql/mysql_system_tables.sql', '/usr/share/man/man1/innochecksum.1.gz', '/usr/share/mysql/slovak/errmsg.sys', '/usr/share/mysql/swedish/errmsg.sys', '/usr/share/mysql/charsets/cp1251.xml', '/usr/share/mysql/japanese/errmsg.sys', '/usr/share/mysql/charsets/keybcs2.xml', '/usr/share/mysql/charsets/latin1.xml', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/mysql/charsets/hp8.xml', '/usr/share/mysql/spanish/errmsg.sys', '/usr/share/mysql/greek/errmsg.sys', '/usr/share/mysql/charsets/hebrew.xml', '/usr/share/mysql/charsets/cp850.xml', '/usr/bin/innochecksum', '/usr/share/mysql/charsets/cp866.xml', '/usr/share/mysql/english/errmsg.sys', '/usr/bin/mysql_upgrade', '/usr/share/mysql/charsets/macroman.xml', '/usr/bin/resolveip', '/usr/share/mysql/charsets/dec8.xml', '/usr/share/mysql/charsets/koi8r.xml', '/usr/share/mysql/charsets/ascii.xml', '/usr/share/mysql/german/errmsg.sys', '/usr/share/mysql/charsets/koi8u.xml', '/usr/share/mysql/charsets/latin2.xml', '/usr/share/mysql/norwegian-ny/errmsg.sys', '/usr/share/mysql/french/errmsg.sys', '/usr/share/man/man1/mysql_install_db.1.gz', '/usr/share/mysql/charsets/cp1250.xml', '/usr/bin/mysql_install_db', '/usr/share/mysql/serbian/errmsg.sys', '/usr/share/mysql/charsets/greek.xml', '/usr/share/mysql/czech/errmsg.sys', '/usr/share/mysql/portuguese/errmsg.sys', '/usr/share/mysql/ukrainian/errmsg.sys', '/usr/share/mysql/charsets/README', '/usr/share/man/man1/mysql_upgrade.1.gz', '/usr/share/mysql/charsets/cp1256.xml', '/usr/share/mysql/charsets/Index.xml', '/usr/share/mysql/danish/errmsg.sys', '/usr/share/mysql/mysql_system_tables_data.sql', '/usr/share/mysql/dutch/errmsg.sys', '/usr/share/mysql/charsets/geostd8.xml', '/usr/share/mysql/estonian/errmsg.sys', '/usr/share/mysql/norwegian/errmsg.sys', '/usr/share/mysql/charsets/cp852.xml', '/usr/share/mysql/romanian/errmsg.sys', '/usr/share/mysql/hungarian/errmsg.sys', '/usr/share/mysql/charsets/cp1257.xml', '/usr/share/mysql/italian/errmsg.sys', '/usr/sbin/mysqld', '/usr/share/mysql/charsets/swe7.xml', '/usr/share/mysql/korean/errmsg.sys', '/usr/share/mysql/fill_help_tables.sql', '/usr/share/man/man1/resolveip.1.gz', '/usr/share/mysql/charsets/macce.xml', '/usr/share/mysql/polish/errmsg.sys', '/usr/share/man/man8/mysqld.8.gz', '/usr/share/mysql/charsets/latin7.xml'}
      [ERROR] mariadb-server-core-10.6 conflicts with percona-xtradb-cluster-server-5.6 files: {'/usr/share/mysql/russian/errmsg.sys', '/usr/share/mysql/charsets/armscii8.xml', '/usr/share/mysql/charsets/latin5.xml', '/usr/share/mysql/mysql_system_tables.sql', '/usr/share/man/man1/innochecksum.1.gz', '/usr/share/mysql/slovak/errmsg.sys', '/usr/share/mysql/swedish/errmsg.sys', '/usr/share/mysql/charsets/cp1251.xml', '/usr/share/mysql/japanese/errmsg.sys', '/usr/share/mysql/charsets/keybcs2.xml', '/usr/share/mysql/charsets/latin1.xml', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/mysql/charsets/hp8.xml', '/usr/share/mysql/spanish/errmsg.sys', '/usr/share/mysql/greek/errmsg.sys', '/usr/share/mysql/charsets/hebrew.xml', '/usr/share/mysql/charsets/cp850.xml', '/usr/bin/innochecksum', '/usr/share/mysql/charsets/cp866.xml', '/usr/share/mysql/english/errmsg.sys', '/usr/bin/mysql_upgrade', '/usr/share/mysql/charsets/macroman.xml', '/usr/bin/resolveip', '/usr/share/mysql/charsets/dec8.xml', '/usr/share/mysql/charsets/koi8r.xml', '/usr/share/mysql/charsets/ascii.xml', '/usr/share/mysql/german/errmsg.sys', '/usr/share/mysql/charsets/koi8u.xml', '/usr/share/mysql/charsets/latin2.xml', '/usr/share/mysql/norwegian-ny/errmsg.sys', '/usr/share/mysql/french/errmsg.sys', '/usr/share/man/man1/mysql_install_db.1.gz', '/usr/share/mysql/charsets/cp1250.xml', '/usr/bin/mysql_install_db', '/usr/share/mysql/serbian/errmsg.sys', '/usr/share/mysql/charsets/greek.xml', '/usr/share/mysql/czech/errmsg.sys', '/usr/share/mysql/portuguese/errmsg.sys', '/usr/share/mysql/ukrainian/errmsg.sys', '/usr/share/mysql/charsets/README', '/usr/share/man/man1/mysql_upgrade.1.gz', '/usr/share/mysql/charsets/cp1256.xml', '/usr/share/mysql/charsets/Index.xml', '/usr/share/mysql/danish/errmsg.sys', '/usr/share/mysql/mysql_system_tables_data.sql', '/usr/share/mysql/dutch/errmsg.sys', '/usr/share/mysql/charsets/geostd8.xml', '/usr/share/mysql/estonian/errmsg.sys', '/usr/share/mysql/norwegian/errmsg.sys', '/usr/share/mysql/charsets/cp852.xml', '/usr/share/mysql/romanian/errmsg.sys', '/usr/share/mysql/hungarian/errmsg.sys', '/usr/share/mysql/charsets/cp1257.xml', '/usr/share/mysql/italian/errmsg.sys', '/usr/sbin/mysqld', '/usr/share/mysql/charsets/swe7.xml', '/usr/share/mysql/korean/errmsg.sys', '/usr/share/mysql/fill_help_tables.sql', '/usr/share/man/man1/resolveip.1.gz', '/usr/share/mysql/charsets/macce.xml', '/usr/share/mysql/polish/errmsg.sys', '/usr/share/man/man8/mysqld.8.gz', '/usr/share/mysql/charsets/latin7.xml'}
      [ERROR] mariadb-server-core-10.6 conflicts with percona-xtradb-cluster-server-5.7 files: {'/usr/share/mysql/russian/errmsg.sys', '/usr/share/mysql/charsets/armscii8.xml', '/usr/share/mysql/charsets/latin5.xml', '/usr/share/mysql/mysql_system_tables.sql', '/usr/share/man/man1/innochecksum.1.gz', '/usr/share/mysql/slovak/errmsg.sys', '/usr/share/mysql/swedish/errmsg.sys', '/usr/share/mysql/charsets/cp1251.xml', '/usr/share/mysql/japanese/errmsg.sys', '/usr/share/mysql/charsets/keybcs2.xml', '/usr/share/mysql/charsets/latin1.xml', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/mysql/charsets/hp8.xml', '/usr/share/mysql/spanish/errmsg.sys', '/usr/share/mysql/greek/errmsg.sys', '/usr/share/mysql/charsets/hebrew.xml', '/usr/share/mysql/charsets/cp850.xml', '/usr/bin/innochecksum', '/usr/share/mysql/charsets/cp866.xml', '/usr/share/mysql/english/errmsg.sys', '/usr/bin/mysql_upgrade', '/usr/share/mysql/charsets/macroman.xml', '/usr/bin/resolveip', '/usr/share/mysql/charsets/dec8.xml', '/usr/share/mysql/charsets/koi8r.xml', '/usr/share/mysql/charsets/ascii.xml', '/usr/share/mysql/german/errmsg.sys', '/usr/share/mysql/charsets/koi8u.xml', '/usr/share/mysql/charsets/latin2.xml', '/usr/share/mysql/norwegian-ny/errmsg.sys', '/usr/share/mysql/french/errmsg.sys', '/usr/share/man/man1/mysql_install_db.1.gz', '/usr/share/mysql/charsets/cp1250.xml', '/usr/bin/mysql_install_db', '/usr/share/mysql/serbian/errmsg.sys', '/usr/share/mysql/charsets/greek.xml', '/usr/share/mysql/czech/errmsg.sys', '/usr/share/mysql/portuguese/errmsg.sys', '/usr/share/mysql/mysql_sys_schema.sql', '/usr/share/mysql/ukrainian/errmsg.sys', '/usr/share/mysql/charsets/README', '/usr/share/man/man1/mysql_upgrade.1.gz', '/usr/share/mysql/charsets/cp1256.xml', '/usr/share/mysql/charsets/Index.xml', '/usr/share/mysql/danish/errmsg.sys', '/usr/share/mysql/mysql_system_tables_data.sql', '/usr/share/mysql/dutch/errmsg.sys', '/usr/share/mysql/charsets/geostd8.xml', '/usr/share/mysql/estonian/errmsg.sys', '/usr/share/mysql/norwegian/errmsg.sys', '/usr/share/mysql/charsets/cp852.xml', '/usr/share/mysql/romanian/errmsg.sys', '/usr/share/mysql/hungarian/errmsg.sys', '/usr/share/mysql/charsets/cp1257.xml', '/usr/share/mysql/italian/errmsg.sys', '/usr/sbin/mysqld', '/usr/share/mysql/charsets/swe7.xml', '/usr/share/mysql/korean/errmsg.sys', '/usr/share/mysql/fill_help_tables.sql', '/usr/share/man/man1/resolveip.1.gz', '/usr/share/mysql/charsets/macce.xml', '/usr/share/mysql/polish/errmsg.sys', '/usr/share/man/man8/mysqld.8.gz', '/usr/share/mysql/charsets/latin7.xml'}
      [ERROR] mariadb-test conflicts with mysql-client-5.5 files: {'/usr/bin/mysql_client_test'}
      [ERROR] mariadb-test conflicts with mysql-server-5.5 files: {'/usr/bin/mysqltest', '/usr/lib/mysql/plugin/ha_example.so', '/usr/share/man/man1/mysqltest.1.gz', '/usr/lib/mysql/plugin/adt_null.so', '/usr/lib/mysql/plugin/auth_test_plugin.so', '/usr/lib/mysql/plugin/libdaemon_example.so', '/usr/lib/mysql/plugin/qa_auth_server.so', '/usr/lib/mysql/plugin/qa_auth_interface.so', '/usr/lib/mysql/plugin/mypluglib.so'}
      [ERROR] mariadb-test conflicts with percona-server-server-5.6 files: {'/usr/bin/mysqltest', '/usr/share/man/man1/mysqltest.1.gz', '/usr/lib/mysql/plugin/adt_null.so', '/usr/lib/mysql/plugin/auth_test_plugin.so', '/usr/lib/mysql/plugin/daemon_example.ini', '/usr/lib/mysql/plugin/libdaemon_example.so', '/usr/lib/mysql/plugin/qa_auth_server.so', '/usr/lib/mysql/plugin/qa_auth_interface.so', '/usr/lib/mysql/plugin/mypluglib.so'}
      [ERROR] mariadb-test conflicts with percona-xtradb-cluster-server-5.6 files: {'/usr/bin/mysqltest', '/usr/share/man/man1/mysqltest.1.gz', '/usr/lib/mysql/plugin/adt_null.so', '/usr/lib/mysql/plugin/auth_test_plugin.so', '/usr/lib/mysql/plugin/libdaemon_example.so', '/usr/lib/mysql/plugin/qa_auth_server.so', '/usr/lib/mysql/plugin/qa_auth_interface.so', '/usr/lib/mysql/plugin/mypluglib.so'}
      [ERROR] mariadb-test conflicts with percona-xtradb-cluster-server-5.7 files: {'/usr/bin/mysqltest', '/usr/lib/mysql/plugin/ha_example.so', '/usr/share/man/man1/mysqltest.1.gz', '/usr/lib/mysql/plugin/adt_null.so', '/usr/lib/mysql/plugin/auth_test_plugin.so', '/usr/lib/mysql/plugin/libdaemon_example.so', '/usr/lib/mysql/plugin/qa_auth_server.so', '/usr/lib/mysql/plugin/qa_auth_interface.so', '/usr/lib/mysql/plugin/mypluglib.so'}
      [ERROR] mariadb-server-core-10.6 conflicts with mariadb-server-10.1 files: {'/usr/share/man/man1/resolveip.1.gz', '/usr/share/mysql/fill_help_tables.sql', '/usr/share/mysql/mysql_system_tables_data.sql', '/usr/share/mysql/mysql_performance_tables.sql', '/usr/share/mysql/mysql_system_tables.sql', '/usr/share/mysql/mysql_test_data_timezone.sql', '/usr/share/mysql/maria_add_gis_sp_bootstrap.sql', '/usr/bin/resolveip'}
      
      This was not fixed:
      [ERROR] libmariadb-dev-compat conflicts with libmariadbclient-dev files: {'/usr/bin/mysql_config'}
      The reason is that as long as libmariadbclient-dev is also provided by libmariadb-dev
      as a kind of virtual package. If there is a breaks/replaces against it, it would
      prevent libmariadb-dev-compat to be co-installed with libmariadb-dev. If the breaks/replaces
      was versioned, then Lintian would complain about external versioned replace.
      
      See also https://github.com/mariadb-corporation/mariadb-columnstore-engine/pull/1846 that
      fixes one more conflict.
      62f5a4f0
    • Otto Kekäläinen's avatar
      Deb: Move my_print_defaults to MariaDB client core package · fc65417e
      Otto Kekäläinen authored
      The my_print_default is required by mytop which is also in the MariaDB
      client package, which in turn requires the client core package.
      This way it is ensured my_print_default is always available when mytop
      is installed.
      
      The my_print_defaults is also requires by the server logrotate files
      and mysqld_safe script etc, but this change is fine, since the server
      core package always depends on the MariaDB client core package anyway
      and they are both installed on server installations.
      
      Closes: #1566, #1581
      fc65417e
    • Daniel Black's avatar
      Deb: Move client programs to client package from MariaDB server package · f55d53e2
      Daniel Black authored
      There are many programs that actually belong to the client or even client
      core package, as they should be fully usable without a locally installed
      server.
      f55d53e2
    • Sujatha's avatar
      MDEV-16437: merge 5.7 P_S replication instrumentation and tables · 41083231
      Sujatha authored
      Merge 'replication_applier_status' table.
      
      This table captures SQL_THREAD status.
      41083231
    • Sujatha's avatar
      MDEV-16437: merge 5.7 P_S replication instrumentation and tables · 767648cc
      Sujatha authored
      Merge 'replication_applier_configuration' table.
      
      This table captures SQL_THREAD configuration parameters.
      767648cc
    • Sujatha's avatar
      MDEV-16437: merge 5.7 P_S replication instrumentation and tables · 70642871
      Sujatha authored
      Merge 'replication_applier_status_by_coordinator' table.
      
      This table captures SQL_THREAD status in case of both single threaded and
      multi threaded slave configuration. When multi_source replication is enabled
      this table will display each source specific SQL_THREAD status.
      
      Added new columns for:
       - LAST_SEEN_TRANSACTION
       - LAST_TRANS_RETRY_COUNT
      70642871
    • Sujatha's avatar
      MDEV-16437: merge 5.7 P_S replication instrumentation and tables · 2674365c
      Sujatha authored
      Merge 'replication_connection_configuration' table.
      
      Replaced following column:
        - AUTO_POSITION with USING_GTID
      Added new columns for:
        - IGNORE_SERVER_IDS
        - DO_DOMAIN_IDS
        - IGNORE_SERVER_IDS
      Removed following columns as they are not part of mariadb replication
      connection configuration:
        - NETWORK_INTERFACE
        - TLS_VERSION
      
      @sql/mysqld.cc
        Changed "master-retry-count" default value to 100000.
      2674365c
  3. 15 Apr, 2021 6 commits
  4. 14 Apr, 2021 15 commits
  5. 13 Apr, 2021 7 commits
    • Julius Goryavsky's avatar
      MDEV-25307: The value of the auto-increment variables changes during the test · 9ff737b2
      Julius Goryavsky authored
      Part #2, specifically for the 10.5+ branch:
      
      The auto-increment parameters can change sporadically during the
      execution of the mtr test "galera_vote_rejoin_ddl", causing it to
      fail. This patch creates an environment where unpredictable changes
      to these auto-increment settings do not occur during the test.
      9ff737b2
    • Sergei Golubchik's avatar
      -DMYSQL_MAINTAINER_MODE=NO · 55a7682a
      Sergei Golubchik authored
      also add =WARN as an alias for =OFF
      and clarify the help text
      55a7682a
    • Marko Mäkelä's avatar
      MDEV-24745 Generic CRC-32C computation wrongly uses SSE4.2 instructions · 58f184a4
      Marko Mäkelä authored
      In commit d25f806d (MDEV-22749)
      the CRC-32C implementation of MariaDB was broken on some
      IA-32 and AMD64 builds, depending on the compiler version and
      build options. This was verified for IA-32 on GCC 10.2.1.
      
      Even though we try to identify the SSE4.2 extensions and the
      availaibility of the PCLMULQDQ instruction by executing CPUID,
      the fall-back code could be generated with extended instructions,
      because the entire file mysys/crc32/crc32c.c was being compiled
      with -msse4.2 -mpclmul. This would cause SIGILL on a PINSRD
      instruction on affected IA-32 targets (such as some Intel Atom
      processors). This might also affect old AMD64 processors
      (predating the 2007 Intel Nehalem microarchitecture), if some
      compiler chose to emit the offending instructions.
      
      While it is fine to pass a target-specific option to a target-specific
      compilation unit (like -mpclmul to a PCLMUL-specific compilation unit),
      that is not safe for mixed-architecture compilation units.
      
      For mixed-architecture compilation units, the correct way is to set
      target attributes on the target-specific functions.
      
      There does not seem to be a way to pass target attributes to
      function template instantiation. Hence, we must replace the
      ExtendImpl template with plain functions crc32_sse42() and
      crc32_slow().
      
      We will also remove some inconsistency between
      my_crc32_implementation() and mysys_namespace::crc32::Choose_Extend().
      
      The function crc32_pclmul_enabled() will be moved to mysys/crc32/crc32c.cc
      so that the detection code will be compiled without -msse4.2 -mpclmul.
      
      The AMD64 PCLMUL accelerated crc32c_3way() will be moved to a new
      file crc32c_amd64.cc. In this way, only a few functions that depend
      on -msse4.2 in mysys/crc32/crc32c.cc can be declared with
      __attribute__((target("sse4.2"))), and most of the file can be compiled
      for the generic target.
      
      Last, the file mysys/crc32ieee.cc will be omitted on 64-bit POWER,
      because it was dead code (no symbols were exported).
      
      Reviewed by: Vladislav Vaintroub
      58f184a4
    • sjaakola's avatar
      MDEV-24966 Galera multi-master regression · a1e70388
      sjaakola authored
      After the merging of MDEV-24915, 10.6 branch has regressions with handling of
      concurrent write load against two or more cluster nodes. These regressions may
      surface as cluster hanging, node crashes or data inconsistency. With some test
      scenarios, the only visible symptom could be that the BF victim aborting happens
      only by innodb lock wait timeout expiration. This would result only to poor
      performance (by default 50 sec hang for each BF conflict), and could be somewhat
      difficult to diagnose.
      
      This pull request has following fixes to handle concurrent write load from
      multiple nodes:
      
      In lock_wait_wsrep_kill(), the victim trx was expected to be only in
      TRX_STATE_ACTIVE state. With the delayed BF conflict handling, it can happen
      that victim has advanced into pre commit state. This was fixed by choosing
      victim both in TRX_STATE_ACTIVE and TRX_STATE_PREPARED states.
      
      Victim transaction may be in several different states at the time of detected
      lock conflict, and due to delayed BF aborting practice in MDEV-24915, the victim
      may advance further before the actual BF aborting takes place. The BF aborting
      in MDEV-24915 did not wake the victim, if it was in the state of waiting for
      some other lock (than the one that was blocking the high priority thread).
      This anomaly caused the innodb lock wait timeout expiration delays and poor
      performance symptom. To fix this, lock_wait_wsrep_kill() now looks if
      victim is in lock waiting state, and uses lock_cancel_waiting_and_release()
      to cancel this lock wait.
      
      wsrep_bf_abort() checks if the victim has active transaction (in wsrep-lib),
      and starts a new transaction if there was no active transaction before.
      Due to late BF aborting, the victim may have e.g. failed in certification
      and is already aborting or has aborted at this stage. This has caused
      problems in testing where BF aborter tries to BF abort himself.
      The fix in wsrep_bf_abort() now skips the BF abort, if victim is aborting
      or has aborted. Victim may not have started transaction yet in wsrep context,
      but it may have acquired MDL locks (due to DDL execution), and this has
      caused BF conflict. Such case does not require aborting in wsrep or
      replication provider state.
      
      BF aborting could cause BF-BF conflict scenario, if victim was already aborted
      and changed to replayer having high priority as well. This BF-BF conflict
      scenario is now avoided in lock_wait_wsrep() where we now check if blocking
      lock holder is also high priority and is ordered before, caller should wait
      for the lock in this situation.
      
      The natural innodb deadlock resolving algorithm could pick BF thread as
      deadlock victim. This is fixed by giving max weigh to BF threads in
      Deadlock::report().
      
      MDEV-24341 has changed excution paths in do_command() and this affects BF
      aborted victim execution. This PR fixes one assert in do_command():
       DBUG_ASSERT(!thd->async_state.pending_ops())
      Which fired if the thd was BF aborted earlier. This assert is now changed
      to allow pending_ops() if thd was BF aborted before.
      
      With these fixes, long term highly conflicting write load could be run against
      to node cluster. If binlogging is configured, log_slave_updates should be
      also set.
      a1e70388
    • Anel Husakovic's avatar
      MDEV-23015: mariadb-setpermission seems incompatible with DBI:MariaDB · 18a82901
      Anel Husakovic authored
      - Commit 5cc2096f introduced in `10.5` changed DBI:DBD to DBD:MariaDB in this case with redudant `mysql` option.
      - According to database handle (dbh) and `connect` method one should follow
        https://metacpan.org/pod/DBD::MariaDB#Class-Methods with proper created data source name (dsn).
      - Adding socket precedance over port.
      - Adding skipping the comments when reading the `my.cnf` file.
      - MDEV-23016: mariadb-setpermission included
      18a82901
    • Marko Mäkelä's avatar
      MDEV-24620 ASAN heap-buffer-overflow in btr_pcur_restore_position() · b8c8692f
      Marko Mäkelä authored
      Between btr_pcur_store_position() and btr_pcur_restore_position()
      it is possible that purge empties a table and enlarges
      index->n_core_fields and index->n_core_null_bytes.
      Therefore, we must cache index->n_core_fields in
      btr_pcur_t::old_n_core_fields so that btr_pcur_t::old_rec can be
      parsed correctly.
      
      Unfortunately, this is a huge change, because we will replace
      "bool leaf" parameters with "ulint n_core"
      (passing index->n_core_fields, or 0 for non-leaf pages).
      For special cases where we know that index->is_instant() cannot hold,
      we may also pass index->n_fields.
      b8c8692f
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 6e6318b2
      Marko Mäkelä authored
      6e6318b2