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

10.2 to 10.3 upgrade doesn't remove semi-sync reference from mysql.plugin table

    XMLWordPrintable

    Details

      Description

      I noticed that upgrade from 10.2 -> 10.3 doesn't remove semi-sync reference from mysql.plugin table. As per documentation:

      In MariaDB 10.3.3 and later, the Semisynchronous Replication feature is built into MariaDB server and is no longer provided by a plugin. This means that installing the plugin is not supported on those versions. In MariaDB 10.3.3 and later, you can skip right to Enabling Semisynchronous Replication.

      So, when Semisynchronous is already part of server then should be removed when upgrade is done to 10.3. It should be handled part of server or mysql_upgrade.

      Welcome to the MariaDB monitor.  Commands end with ; or \g.
      Your MariaDB connection id is 9
      Server version: 10.2.31-MariaDB-log MariaDB Server
       
      MariaDB [(none)]> INSTALL SONAME 'semisync_master';
      Query OK, 0 rows affected (0.00 sec)
       
      MariaDB [(none)]> INSTALL SONAME 'semisync_slave';
      Query OK, 0 rows affected (0.00 sec)
       
      MariaDB [(none)]> SELECT * FROM mysql.plugin;
      +----------------------+--------------------+
      | name                 | dl                 |
      +----------------------+--------------------+
      | rpl_semi_sync_master | semisync_master.so |
      | rpl_semi_sync_slave  | semisync_slave.so  |
      +----------------------+--------------------+
      

      From here, I tried to upgrade from 10.2 to 10.3

      # rpm -qa | egrep -i "mysql|mariadb"
      MariaDB-common-10.3.22-1.el7.centos.x86_64
      MariaDB-backup-10.3.22-1.el7.centos.x86_64
      MariaDB-client-10.3.22-1.el7.centos.x86_64
      MariaDB-server-10.3.22-1.el7.centos.x86_64
      MariaDB-compat-10.2.31-1.el7.centos.x86_64
      MariaDB-shared-10.3.22-1.el7.centos.x86_64
       
      Welcome to the MariaDB monitor.  Commands end with ; or \g.
      Your MariaDB connection id is 10
      Server version: 10.3.22-MariaDB-log MariaDB Server
       
      Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
       
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
       
      MariaDB [(none)]> SELECT * FROM mysql.plugin;
      +-----------------------+--------------------------+
      | name                  | dl                       |
      +-----------------------+--------------------------+
      | rpl_semi_sync_master  | semisync_master.so       |
      | rpl_semi_sync_slave   | semisync_slave.so        |
      +-----------------------+--------------------------+
      

      As you can see reference to semi_sync plugins still present in mysql.plugin table after upgrade.

      # mysql_upgrade
      Phase 1/7: Checking and upgrading mysql database
      Processing databases
      mysql
      mysql.column_stats                                 OK
      mysql.columns_priv                                 OK
      mysql.db                                           OK
      mysql.event                                        OK
      mysql.func                                         OK
      mysql.gtid_slave_pos                               OK
      mysql.help_category                                OK
      mysql.help_keyword                                 OK
      mysql.help_relation                                OK
      mysql.help_topic                                   OK
      mysql.host                                         OK
      mysql.index_stats                                  OK
      mysql.innodb_index_stats                           OK
      mysql.innodb_table_stats                           OK
      mysql.plugin                                       OK
      mysql.proc                                         OK
      mysql.procs_priv                                   OK
      mysql.proxies_priv                                 OK
      mysql.roles_mapping                                OK
      mysql.servers                                      OK
      mysql.table_stats                                  OK
      mysql.tables_priv                                  OK
      mysql.time_zone                                    OK
      mysql.time_zone_leap_second                        OK
      mysql.time_zone_name                               OK
      mysql.time_zone_transition                         OK
      mysql.time_zone_transition_type                    OK
      mysql.user                                         OK
      Phase 2/7: Installing used storage engines... Skipped
      Phase 3/7: Fixing views
      Phase 4/7: Running 'mysql_fix_privilege_tables'
      Phase 5/7: Fixing table and database names
      Phase 6/7: Checking and upgrading tables
      Processing databases
      information_schema
      performance_schema
      test
      Phase 7/7: Running 'FLUSH PRIVILEGES'
      OK
      MariaDB [(none)]> SELECT * FROM mysql.plugin;
      +-----------------------+--------------------------+
      | name                  | dl                       |
      +-----------------------+--------------------------+
      | rpl_semi_sync_master  | semisync_master.so       |
      | rpl_semi_sync_slave   | semisync_slave.so        |
      +-----------------------+--------------------------+
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              sanja Oleksandr Byelkin
              Reporter:
              muhammad.irfan Muhammad Irfan
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:

                  Git Integration