• Monty's avatar
    MDEV-27068 running mariadb-upgrade in parallel make it hangs forever · 0fd4d6d3
    Monty authored
    MDEV-27107 prevent two mariadb-upgrade running in parallel
    MDEV-27279 mariadb_upgrade add --check-if-upgrade-is-needed /
               restrict tests to major version
    
    Code is based of pull request from Daniel Black, but with a several
    extensions.
    
    - mysql_upgrade now locks the mysql_upgrade file with my_lock()
      (Advisory record locking). This ensures that two mysql_upgrades
       cannot be run in parallel.
    - Added --check-if-upgrade-is-needed to mysql_upgrade. This will return
      0 if one has to run mysql_upgrade.
    
    Other changes:
    - mysql_upgrade will now immediately exit if the major version and minor
      version  (two first numbers in the version string) is same as last run.
      Before this change mysql_upgrade was run if the version string was different
      from last run.
    - Better messages when there is no need to run mysql_upgrade.
    - mysql_upgrade --verbose now prints out a lot more information about
      the version checking.
    - mysql_upgrade --debug now uses default debug arguments if there is no
      option to --debug
    - "MySQL" is renamed to MariaDB in the messages
    - mysql_upgrade version increased to 2.0
    
    Notes
    Verifying "prevent two mariadb-upgrade running in parallel" was
    done in a debugger as it would be a bit complex to do that in mtr.
    
    Reviewer: Danial Black <daniel@mariadb.org>
    0fd4d6d3
mysql_upgrade_noengine.test 2.25 KB