This is an issue with the MySQL recipe. When startDetectionQuery is set to an empty string (i.e., startDetectionQuery=""), the MySQL master-slave mode does not work.
The symptom is that although application can write data to the master node, the data never gets replicated to the slave node. On the slave node, mysql is running, but the processes/threads for performing the replication of data from master to slave are not running. The log shows that the slave node is waiting for the master node to become ready.
This issue is caused by the logic in mysql_startDetection.groovy. The service attribute "masterIsReady" is never set when startDetectionQuery="". It is only set in the branch when startDetectionQuery is not empty.
Thus, to fix this issue, we need to add code to set masterIsReady to true when the master node is ready in the situation where startDetectionQuery is empty as well.