[MDEV-26922] Invalid configuration checked after IST/SST Created: 2021-10-27 Updated: 2023-04-27 |
|
| Status: | Stalled |
| Project: | MariaDB Server |
| Component/s: | Server |
| Affects Version/s: | 10.3.31, 10.4.21, 10.5.12, 10.6.4 |
| Fix Version/s: | 10.4, 10.5, 10.6 |
| Type: | Bug | Priority: | Major |
| Reporter: | carlos tutte | Assignee: | Julius Goryavsky |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Description |
|
After a MariaDB/galera node starts, it will do IST/SST but if latter an invalid variable is found it will crash as can be seen from the log:
It can be seen that one invalid variable was found on the my.cnf file, but the server aborted AFTER doing the entire SST process which can take long. To reproduce just create a 2/3 node galera cluster and put some invalid variable name on the config file under [mysqld] |
| Comments |
| Comment by Sergei Golubchik [ 2021-11-23 ] |
|
Generally, it's not possible to detect invalid parameters before SST. The thing is, invalid parameters can only be detected after all plugins (storage engines are plugins too) are loaded — that is, after server knows what parameters are valid plugin parameters. And SST can copy InnoDB files, so it needs to be done before InnoDB is loaded. If you use "mysqldump" SST method, that doesn't copy files, you'll likely see "invalid option" error first (but I didn't try it). |
| Comment by Sergei Golubchik [ 2021-11-23 ] |
|
Ideally, though, SST wouldn't need to be repeated. sysprg, why does it happen and can it be avoided? |
| Comment by Julius Goryavsky [ 2021-11-23 ] |
|
serg As a first approximation, we have an abnormal termination here and in this case, the state of Galera is considered inconsistent. Therefore, the next time we start the server, we start SST from scratch again (since the current state is marked as inconsistent in the Galera-specific file). I need to look at the code in detail in order to understand if we can initiate a normal shutdown with diagnostics here (with a normal shutdown of Galera as a consequence of this), instead of abnormal termination. If it is possible, then the state that we received as a result of SST will not be marked as inconsistent and it will be saved, rather than completely lost. |