fix(mariadb): drop MySQL-only log_error_verbosity, reclassify secure_timestamp as static - #3070
fix(mariadb): drop MySQL-only log_error_verbosity, reclassify secure_timestamp as static#3070weicao wants to merge 1 commit into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3070 +/- ##
=====================================
Coverage 0.00% 0.00%
=====================================
Files 144 144
Lines 23053 23072 +19
=====================================
- Misses 23053 23072 +19 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…timestamp as static Both runtime-confirmed on mariadb:11.4. log_error_verbosity is a MySQL-only variable that does not exist in MariaDB (`unknown variable`, mariadbd exits rc=7). Listed under dynamicParameters it would be persisted by reconfigure and CrashLoop the engine on next restart — the same class as the previously-removed rpl_semi_sync_master_wait_for_slave_count. Removed; MariaDB uses log_warnings for verbosity. secure_timestamp is a read-only MariaDB variable (SET GLOBAL returns ERROR 1238 "read only variable"); it can only be set at startup. Moved from dynamicParameters to staticParameters so reconfigure triggers a restart instead of a failing SET GLOBAL. sql_log_bin (dynamic on MariaDB) and wsrep_slave_threads (inert on non-galera) were checked and left unchanged. Fixes #3069
429989e to
6e038fc
Compare
|
rebase 到 main 554fd84 + re-author 为 Magnus magnus@apecloud.com + 移除 AI 署名 trailer。内容零变化(#3030/#3020 已在 merge base 内)。 |
|
Reopened per owner direction after rolling back the consolidated PR #3276. This PR is again an independent review and validation unit. |
weicao
left a comment
There was a problem hiding this comment.
This changes the rendered ComponentDefinition spec.configs[].reconfigure content while keeping chart version 1.2.0-alpha.26. On released KubeBlocks v1.0.0 that field is immutable, so same-name upgrades can be rejected and leave the ComponentDefinition unavailable.
Summary
addons/mariadb/config/mariadb-config-effect-scope.yamllists two parameters that are invalid for MariaDB. Both were runtime-confirmed onmariadb:11.4(2026-07-06).1.
log_error_verbosity— MySQL-only, crash-class (removed)log_error_verbosityis a MySQL 5.7+ system variable that does not exist in MariaDB. It was listed underdynamicParameters, so a reconfigure would persist it into the engine config. On next restart mariadbd rejects it:This is the same failure class the addon already documents for
rpl_semi_sync_master_wait_for_slave_count(removed in a prior change with the note "MariaDB 11.4 does not recognize the MySQL-specific variable ... CrashLoops the engine container on first startup"). MariaDB useslog_warnings(already in the list) for verbosity. Fix: removelog_error_verbosity.2.
secure_timestamp— read-only variable, mis-classified as dynamic (moved to static)secure_timestampis a read-only MariaDB variable (information_schema.SYSTEM_VARIABLES.READ_ONLY = YES); it can only be set at startup:It was under
dynamicParameters, so the Configure controller would attemptSET GLOBALand fail. Fix: move it tostaticParametersso a reconfigure of it correctly triggers a restart.Not changed (verified NOT bugs)
While auditing I also checked two params from the same area and confirmed they are not defects on MariaDB 11.4, so they are intentionally left as-is:
sql_log_bin—READ_ONLY = NO;SET GLOBAL sql_log_bin=1succeeds on MariaDB (unlike MySQL 8, which removed the global). Genuinely dynamic.wsrep_slave_threads— exists as a built-in variable even without the wsrep provider loaded, so it does not crash non-galera topologies (it is inert there). A cross-topology scope-cleanliness nit, not a correctness bug.Tests
reconfigure_persisted_alpha86_spec.sh: new guard group assertinglog_error_verbosityis absent everywhere andsecure_timestampis classified static, not dynamic. Full mariadb suite: 666 examples, 0 failures.