Bug #108905 | offline-mode is persisted when doing dba.rebootClusterFromCompleteOutage | ||
---|---|---|---|
Submitted: | 28 Oct 2022 0:02 | Modified: | 8 Mar 2023 11:07 |
Reporter: | Marcos Albe (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Shell AdminAPI InnoDB Cluster / ReplicaSet | Severity: | S2 (Serious) |
Version: | OS: | Any | |
Assigned to: | CPU Architecture: | Any |
[28 Oct 2022 0:02]
Marcos Albe
[28 Oct 2022 0:05]
Marcos Albe
Changing category from Group Replication to Shell AdminAPI which should be more appropriate, I believe
[28 Oct 2022 15:14]
MySQL Verification Team
Hi Marcos, I missed something here as I tried this out myself just now and it behaved like I expected?! Did you run this with 8.0.31 or something much older? I will be redoing the test as I did it how I "assumed" you did not following your steps one by one (doing that now). Thanks
[28 Oct 2022 21:27]
Marcos Albe
Hello Verification team, Current environment is 8.0.28 so not MUCH older but sure, some versions behind... I didn't tried with 8.0.31; Will do so and let you know.
[28 Oct 2022 21:31]
MySQL Verification Team
Thanks for the update, please try to reproduce with 8.0.31 but I do not see any changes between 28 and 31 that could influence this behavior. I'll finish my tests on Monday I hope I'll be able to reproduce it with 8.0.31
[8 Nov 2022 15:24]
MySQL Verification Team
I did reproduce this with .28 following exact steps. Thanks for the report.
[15 Nov 2022 12:17]
Joao Ramos
Posted by developer: The "offline-mode" variable is persisted with the value OFF, when a cluster is rebooted or an instance is added / rejoined into a cluster. This change must be made so that, in case of a reboot (and the instances are rejoined), to prevent replication errors and connection failures, and in case of add / rejoin and instance, to prevent replication errors in case that instance later becomes the primary. There's also the interaction with the "exitStateAction" option, that also controls how the server behaves if it leaves the group unintentionally, and can also be set to "offline_mode". In a scenario where all the members of a cluster were expelled and "exitStateAction" was "offline_mode", if the user executes dba.rebootClusterFromCompleteOutage(), it's expected that the cluster is put back online and the members rejoined. With this in mind, changing the current behavior of dba.rebootClusterFromCompleteOutage() can have a very significant impact and break the general user expectations. Given that the scenario described isn't very common, maybe creating a new option, "keepOfflineModeSettings", in the API could be a possible approach. This option, if explicitly enabled, could simply skip persisting the "offline-mode" variable, so that any config stored in the user .cnf file wouldn't be ignored.
[9 Feb 2023 16:51]
Aaditya Dubey
Hi Team, Any clue when this can be fixed?
[8 Mar 2023 11:07]
Edward Gilmore
Posted by developer: Added the following note to the MySQL Shell 8.0.33 release notes: MySQL Shell disabled and persisted offline_mode when an instance was added or rejoined to a Cluster, or when rebooted. If this variable was enabled explicitly by the user, it was overwritten by MySQL Shell. As of this release, offline_mode is disabled globally, not persisted, and a new warning is added to inform the user of the risks of enabling this variable.