apecloud / kubeblocks

KubeBlocks is an open-source control plane software that runs and manages databases, message queues and other stateful applications on K8s.
https://kubeblocks.io
GNU Affero General Public License v3.0
2.08k stars 170 forks source link

[BUG] Changing a non-existent parameter will cause MySQL to terminate. #8079

Open weicao opened 1 month ago

weicao commented 1 month ago

Describe the bug

The parameter "query_response_time_stats" exists in Percona MySQL and MariaDB, and doesn't exist in MySQL Community Edition.

However, change the parameter is allowed

s$ kbcli cluster configure laurel47 --components=mysql --config-spec=mysql-consensusset-config  --set query_response_time_stats=ON
Warning: The parameter change incurs a cluster restart, which brings the cluster down for a while. Enter to continue...
Please type "yes" to confirm: yes
Will updated configure file meta:
  ConfigSpec: mysql-consensusset-config   ConfigFile: my.cnf    ComponentName: mysql    ClusterName: laurel47
OpsRequest laurel47-reconfiguring-qzmms created successfully, you can view the progress:
    kbcli cluster describe-ops laurel47-reconfiguring-qzmms -n default

Even worse, MySQL will fail to start.

$ kubectl get pods
NAME               READY   STATUS             RESTARTS      AGE
laurel47-mysql-0   3/4     CrashLoopBackOff   6 (19s ago)   6m58s

Expected behavior

The controller should detect that the parameter does not exist and fail the operation.

Desktop (please complete the following information): $ kbcli version Kubernetes: v1.23.8+k3s1 KubeBlocks: 0.9.0 kbcli: 0.9.0

github-actions[bot] commented 20 hours ago

This issue has been marked as stale because it has been open for 30 days with no activity