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

mysql_tzinfo_to_sql's Galera checks do not work

    XMLWordPrintable

Details

    Description

      As part of the fix for MDEV-18778, some code was added, which would make mysql_tzinfo_to_sql execute some ALTER TABLE statements if wsrep_on was set. Unfortunately, these checks do *not* work, so the ALTER TABLE statements are executed even if wsrep_on is not set.

      Here's the relevant commit:

      https://github.com/mariadb/server/commit/fa74088838c12210d782aa6c69faa5acebc1d3bc

      It is easy to show that this does not work.

      First, we can see that wsrep_on is not set:

      $ sudo mysql --execute="SELECT @@global.wsrep_on"
      +-------------------+
      | @@global.wsrep_on |
      +-------------------+
      |                 0 |
      +-------------------+
      

      Let's get the server's binary log position:

      $ sudo mysql --execute="SHOW MASTER STATUS"
      +--------------------+----------+--------------+------------------+
      | File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
      +--------------------+----------+--------------+------------------+
      | mariadb-bin.000065 |  6042708 |              |                  |
      +--------------------+----------+--------------+------------------+
      

      And then let's run mysql_tzinfo_to_sql:

      $ mysql_tzinfo_to_sql /usr/share/zoneinfo | sudo mysql mysql
      Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.
      Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it.
      

      If we check the binary log, then we can confirm that the ALTER TABLE statements are executed:

      $ sudo mysqlbinlog --verbose --start-position=6042708 /var/lib/mysql/mariadb-bin.000065 | grep "ALTER"
      ALTER TABLE time_zone ENGINE=InnoDB
      ALTER TABLE time_zone_name ENGINE=InnoDB
      ALTER TABLE time_zone_transition ENGINE=InnoDB
      ALTER TABLE time_zone_transition_type ENGINE=InnoDB
      ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time
      ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id
      ALTER TABLE time_zone ENGINE=MyISAM
      ALTER TABLE time_zone_name ENGINE=MyISAM
      ALTER TABLE time_zone_transition ENGINE=MyISAM
      ALTER TABLE time_zone_transition_type ENGINE=MyISAM
      

      This should obviously not happen.

      The Galera checks should be fixed.

      Attachments

        Issue Links

          Activity

            People

              jplindst Jan Lindström (Inactive)
              GeoffMontee Geoff Montee (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              6 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.