Bug #77020 MASTER_CONNECT_RETRY should be a global variable
Submitted: 13 May 2015 9:55 Modified: 11 Apr 2019 19:40
Reporter: Shlomi Noach Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:>= 5.5 OS:Any
Assigned to: MySQL Verification Team CPU Architecture:Any
Tags: MASTER_CONNECT_RETRY, replication

[13 May 2015 9:55] Shlomi Noach
Description:
MASTER_CONNECT_RETRY used to be a global variable, but deprecated in favor of becoming a state variable for the replication.

In the past, one would "set global master_connect_retry := 10", and to day one must "CHANGE MASTER TO ... MASTER_CONNECT_RETRY=10".

I believe this particular flag makes little sense as a state variable, and makes a lot of sense as a global variable. I do not see that I'm interested in changing this value per CHANGE MASTER TO statement; it's an operational value, not a state value.

Today I wish to change the value from the default 60 seconds to 10. For this I need to execute a CHANGE MASTER TO on a very large amount of servers. Moreover, I must first STOP SLAVE; on all those servers, which means operational pain.

Instead, I would expect to be able to "set global master_connect_retry := 10", and expect the replication IO thread to read this value next time it fails to connect to the master.

How to repeat:
"CHANGE MASTER TO ... MASTER_CONNECT_RETRY=10" on X,000 servers

Suggested fix:
"set global master_connect_retry := 10"
[13 May 2015 11:02] Shlomi Noach
For completeness, the variable should also be configurable in my.cnf
[11 Apr 2019 19:40] MySQL Verification Team
Hi,

Sorry for taking us this long to answer this one. I think we can all agree this is not a bug. Now if you still, after all this time, believe this should be implemented as a feature, we can make it a feature request.

all best
Bogdan