Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
21.06.17, 22.08.14, 23.02.11, 23.08.7, 24.02.3, 24.08.0
-
None
-
MXS-SPRINT-220
Description
A GET_LOCK() call with master_reconnection=true and master_failure_mode=fail_on_write may cause the lock on the primary node to be lost without the user being aware of it. This means that the only way to guarantee that the locking function calls are handled correctly is to disable reconnections to the primary node.
A better way to deal with this would be to detect if a locking related function call is used and then disable the reconnections. This would make it always safe to use locking functions with MaxScale, regardless of the configuration.
An improvement would be to disable it until all of the locks have been released but this would require the names of all the locks to be stored as well as the tracking of whether the locks were actually acquired.