Bug 1241275

Summary: Peer not recognized after IP address change
Product: [Community] GlusterFS Reporter: Jeff Darcy <jdarcy>
Component: glusterdAssignee: bugs <bugs>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.6.3CC: bugs, rabhat, srangana
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-v3.6.4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1241274
: 1241904 (view as bug list) Environment:
Last Closed: 2016-02-04 15:27:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1241274, 1241963, 1242546    
Bug Blocks: 1216965    

Description Jeff Darcy 2015-07-08 21:36:08 UTC
+++ This bug was initially created as a clone of Bug #1241274 +++

In a user environment, a server might be migrated/restarted with a different IP address than it had before.  DNS has been updated to point the old name at the new address, and thus clients can still reconnect to it OK, but other servers fail to recognize it as a cluster member because of the address change.  In this particular case, the problem is related to containerization of the servers, but it can also occur with bare-metal failover solutions.  The key factor is really that the user is unable/unwilling to configure their routing so that a floating service address can be reassigned to a new physical machine in case of failover or migration.

Extra detail: the problem occurs because the *recipient* of a "peer probe" message initially stores the sender's string-valued IP address instead of its name.  If we then probe in the other direction using that peer's name, we update our peer record with that as well, but that's a total hack and doesn't seem totally foolproof either.  A better solution is to store and subsequently compare against reverse-resolved host names for probes we receive, whenever such names are available.  Such an approach would be effectively immune to such address changes (though it doesn't solve the general problem of DNS errors or misconfiguration).

--- Additional comment from Anand Avati on 2015-07-08 17:35:17 EDT ---

REVIEW: http://review.gluster.org/11587 (glusterd: use a real host name (instead of numeric) when we have one) posted (#1) for review on master by Jeff Darcy (jdarcy)

Comment 1 Anand Avati 2015-07-08 21:36:56 UTC
REVIEW: http://review.gluster.org/11569 (glusterd: use a real host name (instead of numeric) when we have one) posted (#3) for review on release-3.6 by Jeff Darcy (jdarcy)

Comment 3 Anand Avati 2015-07-13 06:24:13 UTC
COMMIT: http://review.gluster.org/11569 committed in release-3.6 by Raghavendra Bhat (raghavendra) 
------
commit c7d8d2ea1e4ad9e247b5876cf17d3a6e0d9af9ad
Author: Jeff Darcy <jdarcy>
Date:   Wed Jul 8 09:52:15 2015 -0400

    glusterd: use a real host name (instead of numeric) when we have one
    
    Change-Id: Ie9cc201204d3d613e3e585cab066a07283db902c
    BUG: 1241275
    Signed-off-by: Jeff Darcy <jdarcy>
    Reviewed-on: http://review.gluster.org/11569
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Krishnan Parthasarathi <kparthas>
    Reviewed-by: Shyamsundar Ranganathan <srangana>
    Reviewed-by: Raghavendra Bhat <raghavendra>
    Tested-by: NetBSD Build System <jenkins.org>

Comment 4 Kaushal 2016-02-04 15:27:21 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-v3.6.4, please open a new bug report.

glusterfs-v3.6.4 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] https://www.gluster.org/pipermail/gluster-users/2015-July/022826.html
[2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user