Skip to content

Updates to make XDMoD compatible with MariaDB 10.5, 10.11, 11.4, 11.8, and 12.3 - #2288

Merged
eiffel777 merged 7 commits into
ubccr:mainfrom
eiffel777:fixes-mariadb-110
Sep 1, 2026
Merged

Updates to make XDMoD compatible with MariaDB 10.5, 10.11, 11.4, 11.8, and 12.3#2288
eiffel777 merged 7 commits into
ubccr:mainfrom
eiffel777:fixes-mariadb-110

Conversation

@eiffel777

@eiffel777 eiffel777 commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Description

We would like XDMoD to be compatible with newer versions of MariaDB. These changes make it so XDMoD is able to run with version of MariaDB up to 12.3. The changes are.

  • Choose which command line command to use to run sql statements. The mysql command line command is removed in 11.0 in favor of mariadb. Check which command exists and use the appropriate one.
  • MariaDB 10.6 renamed the 3-byte UTF-8 character set from utf8 to utf8mb3 in information_schema. The character set itself did not change, but etlv2 manages the tables and compares the discovered name against the declared one as a plain string, so on 10.6 and newer it thinks every managed table is wrong and emiits an ALTER TABLE ... CONVERT TO CHARACTER SET for each one on every run and repeating indefinitely since converting to utf8 can never make the comparison converge. These ALTERs are no-ops that change no data, but each takes an exclusive metadata lock and they permanently mask real schema changes in the ETL logs. This normalizes utf8mb3/utf8mb3_* to the legacy utf8/utf8_* spelling when charset and collation values are set, so both sides of the comparison agree. Normalizing toward utf8 rather than utf8mb3 is deliberate: utf8 is accepted as a character set name by every supported server, while utf8mb3 is unknown to MariaDB 10.5 and earlier, so generated DDL stays valid across the whole 10.3–12.3 range.
  • The 11.5.0 moddb.Reports migration action created its deduplication temp table without an explicit character set, inheriting the database default, which after MariaDB 11.5 is the accent-insensitive utf8mb4_uca1400_ai_ci. That made the table's UNIQUE INDEX collapse report IDs differing only by accent, so INSERT IGNORE would silently discard those rows before the reduced set was written back over moddb.Reports. The temp table now pins utf8/utf8_unicode_ci to match moddb.Reports.

Motivation and Context

We'd like to be able to use newer versions of MariaDB

Tests performed

Tested with MariaDB 10.3, 10.5, 10.11, 11.4, 11.8, and 12.3 in separate docker containers.

Checklist:

  • The pull request description is suitable for a Changelog entry
  • The milestone is set correctly on the pull request
  • The appropriate labels have been added to the pull request

@eiffel777 eiffel777 added this to the 11.5.0 milestone Aug 20, 2026
@eiffel777 eiffel777 self-assigned this Aug 20, 2026
@eiffel777 eiffel777 added the Category:General General label Aug 20, 2026
@eiffel777
eiffel777 requested a review from ryanrath August 20, 2026 16:07
@eiffel777
eiffel777 merged commit e71349a into ubccr:main Sep 1, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants