Bug 1286604

Summary: glusterfsd to support volfile-server-transport type "unix"
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Mohamed Ashiq <mliyazud>
Component: glusterdAssignee: Mohamed Ashiq <mliyazud>
Status: CLOSED ERRATA QA Contact: Byreddy <bsrirama>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rhgs-3.1CC: bmohanra, byarlaga, nlevinki, rcyriac, rhs-bugs, sankarshan, vbellur
Target Milestone: ---Keywords: ZStream
Target Release: RHGS 3.1.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.7.5-9 Doc Type: Bug Fix
Doc Text:
Glusterd is bound to a specific-IP address. Due to this, libgfapi fails to get the volfile since IP is hard-coded to localhost from the client. With this fix, the rpc_transport_unix_options_build is used, libgfapi is now enabled to get the volfile with unix domain socket. libgfapi can now fetch volfile with unix set_volfile-server-transport type even when glusterd is bound to a specific IP address.
Story Points: ---
Clone Of: 1279484 Environment:
Last Closed: 2016-03-01 05:59:25 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: 1279484    
Bug Blocks: 1260783, 1285961    

Description Mohamed Ashiq 2015-11-30 10:08:52 UTC
+++ This bug was initially created as a clone of Bug #1279484 +++

Description of problem:
glusterfsd does not support unix domain socket. In case if glusterd is binded to a specific-IP, glusterfsd clients(like quota auxiliary mount) fails. Using unix domain socket glusterfsd will over come the failure.


Version-Release number of selected component (if applicable):


How reproducible:
Always 

Steps to Reproduce:
1.create and start a volume
2.glusterfs -s <unix socket path> --volfile-server-transport unix --volfile-id <volume-name> <mount-point>

Actual results:
Fails to communicate using unix domain socket

Expected results:
It should be able to communicate using unix domain socket

Additional info:

--- Additional comment from Mohamed Ashiq on 2015-11-09 10:38:25 EST ---

Patch:

http://review.gluster.org/12556

--- Additional comment from Vijay Bellur on 2015-11-19 07:29:03 EST ---

REVIEW: http://review.gluster.org/12556 (glusterfsd: To support volfile-server-transport type "unix") posted (#4) for review on master by Mohamed Ashiq Liyazudeen (mliyazud)

--- Additional comment from Vijay Bellur on 2015-11-19 22:59:40 EST ---

COMMIT: http://review.gluster.org/12556 committed in master by Atin Mukherjee (amukherj) 
------
commit 7fbc38531acbc39369d3b91ba126fc4147ab89d1
Author: Mohamed Ashiq <mliyazud>
Date:   Mon Nov 9 20:43:17 2015 +0530

    glusterfsd: To support volfile-server-transport type "unix"
    
    glusterfsd fails if the glusterd is bind to specific-IP address.
    This patch helps glusterfsd to get the volfile using Unix domain socket.
    glusterfs -s <unix socket path> --volfile-server-transport unix
              --volfile-id <volume-name> <mount-point>
    The patch checks if the volfile-server-transport is of type "unix",
    If It is then uses rpc_transport_unix_options_build to get the volfile.
    
    Change-Id: I81b881e7ac5a3a4f2ac83c789c385cf547f0d53e
    BUG: 1279484
    Signed-off-by: Mohamed Ashiq <mliyazud>
    Signed-off-by: Humble Devassy Chirammal <hchiramm>
    Reviewed-on: http://review.gluster.org/12556
    Reviewed-by: Atin Mukherjee <amukherj>
    Reviewed-by: Niels de Vos <ndevos>
    Tested-by: NetBSD Build System <jenkins.org>
    Tested-by: Gluster Build System <jenkins.com>

--- Additional comment from Vijay Bellur on 2015-11-26 02:10:28 EST ---

REVIEW: http://review.gluster.org/12757 (glusterd: glusterfsd to support volfile-server-transport type "unix") posted (#1) for review on master by Manikandan Selvaganesh (mselvaga)

--- Additional comment from Vijay Bellur on 2015-11-26 03:10:22 EST ---

REVIEW: http://review.gluster.org/12757 (glusterd: glusterfsd to support volfile-server-transport type "unix") posted (#2) for review on master by Manikandan Selvaganesh (mselvaga)

--- Additional comment from Vijay Bellur on 2015-11-26 22:41:25 EST ---

COMMIT: http://review.gluster.org/12757 committed in master by Atin Mukherjee (amukherj) 
------
commit 0db6d57a184ed79eb3142c42957b1a2415744011
Author: Manikandan Selvaganesh <mselvaga>
Date:   Thu Nov 26 12:32:10 2015 +0530

    glusterd: glusterfsd to support volfile-server-transport type "unix"
    
    If glusterfsd uses transport type "unix", 'addrstr' can be empty. So,
    it may fail to fetch the trusted volfile in this case. This patch allows
    to fetch volfile even if addrstr is empty.
    
    Change-Id: I831c5cd0b07b90ae843ec63f0fad9241d9407f6b
    BUG: 1279484
    Signed-off-by: Manikandan Selvaganesh <mselvaga>
    Signed-off-by: Mohamed Ashiq <mliyazud>
    Reviewed-on: http://review.gluster.org/12757
    Reviewed-by: Vijaikumar Mallikarjuna <vmallika>
    Tested-by: NetBSD Build System <jenkins.org>
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Niels de Vos <ndevos>
    Reviewed-by: Atin Mukherjee <amukherj>

Comment 3 Byreddy 2015-12-15 10:23:53 UTC
Verified this bug with and without fix.

Without Fix:
============

[root@ ~]# gluster volume status
Status of volume: Dis
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick IP:/bricks/brick0/az0        49152     0          Y       11320
NFS Server on localhost                     2049      0          Y       11340
 
Task Status of Volume Dis
------------------------------------------------------------------------------
There are no active volume tasks
 
[root@ ~]# glusterfs -s /var/run/glusterd.socket --volfile-server-transport unix --volfile-id  Dis  /mnt
[root@ ~]# 
[root@ ~]# df -Th          <<<<<<<<<<<<<<<<<<<<VOLUME NOT MOUNTED 
Filesystem                  Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhgs-root       xfs        18G  2.9G   15G  17% /
devtmpfs                    devtmpfs  910M     0  910M   0% /dev
tmpfs                       tmpfs     920M     0  920M   0% /dev/shm
tmpfs                       tmpfs     920M   97M  824M  11% /run
tmpfs                       tmpfs     920M     0  920M   0% /sys/fs/cgroup
/dev/mapper/RHS_vg1-RHS_lv1 xfs        20G   34M   20G   1% /bricks/brick0
/dev/mapper/RHS_vg2-RHS_lv2 xfs        20G   34M   20G   1% /bricks/brick1
/dev/mapper/RHS_vg4-RHS_lv4 xfs        20G   34M   20G   1% /bricks/brick3
/dev/mapper/RHS_vg3-RHS_lv3 xfs        20G   34M   20G   1% /bricks/brick2
/dev/vda1                   xfs       497M  132M  366M  27% /boot
tmpfs                       tmpfs     184M     0  184M   0% /run/user/0
[root@ ~]# 
[root@ ~]# rpm -qa |grep gluster
glusterfs-server-3.7.5-6.el7rhgs.x86_64
gluster-nagios-common-0.2.2-1.el7rhgs.noarch
nfs-ganesha-gluster-2.2.0-9.el7rhgs.x86_64
glusterfs-rdma-3.7.5-6.el7rhgs.x86_64
python-gluster-3.7.1-16.el7rhgs.x86_64
glusterfs-3.7.5-6.el7rhgs.x86_64
glusterfs-fuse-3.7.5-6.el7rhgs.x86_64
glusterfs-api-devel-3.7.5-6.el7rhgs.x86_64
glusterfs-client-xlators-3.7.5-6.el7rhgs.x86_64
glusterfs-cli-3.7.5-6.el7rhgs.x86_64
glusterfs-ganesha-3.7.5-6.el7rhgs.x86_64
glusterfs-api-3.7.5-6.el7rhgs.x86_64
glusterfs-geo-replication-3.7.5-6.el7rhgs.x86_64
gluster-nagios-addons-0.2.5-1.el7rhgs.x86_64
glusterfs-libs-3.7.5-6.el7rhgs.x86_64
glusterfs-devel-3.7.5-6.el7rhgs.x86_64
[root@ ~]# 



With Fix:
=========

[root@ ~]# gluster volume status
Status of volume: Dis
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick IP:/bricks/brick0/az        49153     0          Y       10813
NFS Server on localhost                     2049      0          Y       10854
 
Task Status of Volume Dis
------------------------------------------------------------------------------
There are no active volume tasks

[root@ ~]# glusterfs -s /var/run/glusterd.socket --volfile-server-transport unix --volfile-id Dis  /mnt
[root@ ~]# df -Th     <<<<<<<<<<<<<<<<<<<<<<<<<vOLUME GET MOUNTED WITH FIX
Filesystem                   Type            Size  Used Avail Use% Mounted on
/dev/mapper/rhgs-root        xfs              18G  3.4G   15G  20% /
devtmpfs                     devtmpfs        910M     0  910M   0% /dev
tmpfs                        tmpfs           920M     0  920M   0% /dev/shm
tmpfs                        tmpfs           920M   97M  824M  11% /run
tmpfs                        tmpfs           920M     0  920M   0% /sys/fs/cgroup
/dev/vda1                    xfs             497M  132M  366M  27% /boot
/dev/mapper/RHS_vg4-RHS_lv4  xfs              20G   33M   20G   1% /bricks/brick3
/dev/mapper/RHS_vg2-RHS_lv2  xfs              20G  492M   20G   3% /bricks/brick1
/dev/mapper/RHS_vg3-RHS_lv3  xfs              20G   33M   20G   1% /bricks/brick2
/dev/mapper/RHS_vg1-RHS_lv1  xfs              20G   34M   20G   1% /bricks/brick0
tmpfs                        tmpfs           184M     0  184M   0% /run/user/0
/var/run/glusterd.socket:Dis fuse.glusterfs   20G   34M   20G   1% /mnt
[root@ ~]# 
[root@ ~]# rpm -qa |grep gluster
glusterfs-cli-3.7.5-11.el7rhgs.x86_64
python-gluster-3.7.5-6.el7rhgs.noarch
nfs-ganesha-gluster-2.2.0-9.el7rhgs.x86_64
glusterfs-client-xlators-3.7.5-11.el7rhgs.x86_64
glusterfs-debuginfo-3.7.5-11.el7rhgs.x86_64
glusterfs-fuse-3.7.5-11.el7rhgs.x86_64
glusterfs-ganesha-3.7.5-11.el7rhgs.x86_64
glusterfs-libs-3.7.5-11.el7rhgs.x86_64
glusterfs-api-3.7.5-11.el7rhgs.x86_64
glusterfs-geo-replication-3.7.5-11.el7rhgs.x86_64
glusterfs-3.7.5-11.el7rhgs.x86_64
glusterfs-rdma-3.7.5-11.el7rhgs.x86_64
gluster-nagios-addons-0.2.5-1.el7rhgs.x86_64
glusterfs-server-3.7.5-11.el7rhgs.x86_64
gluster-nagios-common-0.2.3-1.el7rhgs.noarch
vdsm-gluster-4.16.20-1.3.el7rhgs.noarch
[root@ ~]# 


With above info, moving this bug to verified state.

Comment 5 errata-xmlrpc 2016-03-01 05:59:25 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-0193.html