Bug #28796 CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info
Submitted: 31 May 2007 10:00 Modified: 12 Nov 15:34
Reporter: Jan Kneschke
Status: Closed
Category:Server: Replication Severity:S3 (Non-critical)
Version:5.1.17, 5.0, 4.1 OS:Any
Assigned to: Luís Soares Target Version:
Triage: Triaged: D3 (Medium)

[31 May 2007 10:00] Jan Kneschke
Description:
CHANGE MASTER TO MASTER_HOST="" creates a master.info with a empty "host" field. 

The configuration is not working and no error is generated at CHANGE MASTER when is
executed.

How to repeat:
> CHANGE MASTER TO MASTER_HOST="", MASTER_PORT=3306, MASTER_USER="repl",
MASTER_PASSWORD="secret", MASTER_LOG_FILE="hostname-bin.000011",
Master_Log_Pos=389524268;
Query OK, 0 rows affected (0.18 sec)

> show slave status\G
Empty set (0.00 sec)

> start slave;
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with
CHANGE MASTER TO

Suggested fix:
Either support a empty Host field (and use unix domain sockets) or throw an error on
CHANGE MASTER TO time.
[31 May 2007 11:42] Sveta Smirnova
Thank you for the report.

Verified as described.
[4 Sep 2007 14:37] Lars Thalmann
SHOW SLAVE STATUS should always work if there is defined information,
so I think just adding the error message if setting the hostname to ""
is good.
[1 Nov 2008 2:03] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/57608

2689 Luis Soares	2008-11-01
      BUG#28796: Checks wether host argument is an empty string or not. If empty, reports
an error to the client and returns, otherwise continue normally.
[19 Nov 2008 15:14] Sven Sandberg
Patch not approved, I suggest another solution.

Internally, master_host="" currently has a special meaning, namely that no host has been
assigned. This is ambiguous since master_host="" can also be set by the user, and this
ambiguity caused the bug. From the user's view, master_host="" should not be more wrong
than master_host="non-existing host", so it seems logical to have the same error
detection mechanism for both.

Therefore, I suggest to use a flag internally that indicates if master_host is undefined,
and remove the special meaning of host_name="".
[4 Dec 2008 13:50] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/60596

2732 Luis Soares	2008-12-04
      Bug #28796 CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info
      
      Description:
      When setting master_host to empty string there was no explicit error thrown
regarding this. Furthermore, show slave status would not output data despite having valid
information to report.
      
      Solution: 
      Allow setting master_host to empty string and output error when connecting to
master. This allows show slave status to still output information.
      
      Details:
      The empty mi->host (!*mi->host[0]) has semantics associated with it in many places
(including when connecting to master). It is the default value (when no options are set
for instance and no change master has been issued). As such I have added the flag that is
just turned on when explicit master_host is assigned. Furthermore should empty string be
assigned, it just turns on the flag if it was assigned using: i) change master to
master_host or ii) read from the master.info file.
      
      When connecting to master it checks if there is an empty string for master
hostname. This was done because removing the existing test for empty string would lead to
a different error (dumped in the error log) when compared to invalid hostname.
      
      Basically, with the patch you can assign empty string to master_host and still have
show slave status to work. When issuing start slave; you get a error with invalid hostname
instead of the previous error "The server is not configured as slave..."
[15 Dec 2008 14:06] Sven Sandberg
OK, please ignore my last comment. I, Luis, and Alfranio agreed that the changes needed
for that were too complicated and risky. I will approve the first patch (throw error on
"CHANGE MASTER TO master_host = ''"), if it gets a test case.

In the future, we should consider making "SHOW SLAVE STATUS" always print all
information, and never return an empty result set. But that is not part of this bug
report.
[20 Dec 2008 4:20] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/62176

2746 Luis Soares	2008-12-20
      BUG#28796: CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info
      
      This patch addresses the bug reported by checking wether 
      host argument is an empty string or not. If empty, an error is
      reported to the client, otherwise continue normally.
      
      This commit is based on the originally proposed patch and adds 
      a test case as requested during review.
[20 Dec 2008 16:12] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/62182

2746 Luis Soares	2008-12-20
      BUG#28796: CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info
            
      This patch addresses the bug reported by checking wether 
      host argument is an empty string or not. If empty, an error is
      reported to the client, otherwise continue normally.
           
      This commit is based on the originally proposed patch and adds 
      a test case as requested during review as well as refines comments, 
      and makes test case result file less verbose (compared to previous patch).
[4 Feb 10:11] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/65100

2810 Luis Soares	2009-02-04
      BUG#28796: CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info
                  
      This patch addresses the bug reported by checking wether 
      host argument is an empty string or not. If empty, an error is
      reported to the client, otherwise continue normally.
                 
      This commit is based on the originally proposed patch and adds 
      a test case as requested during review as well as refines comments, 
      and makes test case result file less verbose (compared to previous patch).
[4 Feb 10:14] Luís Soares
Pushed to 6.0-rpl tree.
[13 Feb 4:24] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/66136

2840 He Zhenxing	2009-02-13 [merge]
      Auto merge 6.0-rpl -> 6.0
[24 Mar 18:20] Bugs System
Pushed into 6.0.11-alpha (revid:alik@sun.com-20090324171507-s5aac9guj21l0jz6) (version
source revid:luis.soares@sun.com-20090204091034-tutzywcis50ib9nq) (merge vers:
6.0.10-alpha) (pib:6)
[25 Mar 11:34] Jon Stephens
Documented bugfix in the 6.0.11 changelog as follows:

        CHANGE MASTER TO ... MASTER_HOST="" (explicitly setting
        MASTER_HOST equal to an empty string) created a master.info file
        with an empty host field. This led to a The server is not
        configured as slave error when attempting to execute a START
        SLAVE statement. Now, if MASTER_HOST is set to an empty string,
        the CHANGE MASTER TO statement fails with an error.

Also noted this issue in the 4.1-5.1 versions of the "CHANGE MASTER TO Syntax" section of
the Manual as a known issue, and noted its 6.0 resolution in the 5.1 and 6.0 versions of
that section.

Closed.
[29 Sep 15:28] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/85007

3113 Luis Soares	2009-09-29
      BUG#28796: CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info
              
      NOTE: this is the backport to next-mr.
                
      This patch addresses the bug reported by checking wether 
      host argument is an empty string or not. If empty, an error is
      reported to the client, otherwise continue normally.
                       
      This commit is based on the originally proposed patch and adds 
      a test case as requested during review as well as refines comments, 
      and makes test case result file less verbose (compared to previous patch).
[29 Sep 16:10] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/85027

3115 Luis Soares	2009-09-29
      BUG#28796: CHANGE MASTER TO MASTER_HOST="" leads to invalid master.info
                    
      NOTE: this is the backport to next-mr.
                      
      This patch addresses the bug reported by checking wether 
      host argument is an empty string or not. If empty, an error is
      reported to the client, otherwise continue normally.
                             
      This commit is based on the originally proposed patch and adds 
      a test case as requested during review as well as refines comments, 
      and makes test case result file less verbose (compared to previous patch).
[27 Oct 10:48] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091027094604-9p7kplu1vd2cvcju) (version
source revid:zhenxing.he@sun.com-20091026140226-uhnqejkyqx1aeilc) (merge vers:
6.0.14-alpha) (pib:13)
[27 Oct 19:43] Jon Stephens
Already documented in the 6.0.11 changelog.

Closed.
[12 Nov 9:19] Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091110093229-0bh5hix780cyeicl) (version
source revid:alik@sun.com-20091027095744-rf45u3x3q5d1f5y0) (merge vers: 5.5.0-beta)
(pib:13)
[12 Nov 15:34] Jon Stephens
Also documented bugfix in the 5.5.0 changelog, and noted resolution of issue in 5.5
Manual. Closed.