[Bugs] [Bug 1151745] New: Option transport.socket.bind-address ignored

bugzilla at redhat.com bugzilla at redhat.com
Sat Oct 11 10:06:45 UTC 2014


https://bugzilla.redhat.com/show_bug.cgi?id=1151745

            Bug ID: 1151745
           Summary: Option transport.socket.bind-address ignored
           Product: GlusterFS
           Version: 3.6.0
         Component: glusterd
          Keywords: EasyFix, Patch, Triaged
          Severity: urgent
          Assignee: gluster-bugs at redhat.com
          Reporter: ndevos at redhat.com
                CC: bugs at gluster.org
        Depends On: 1149863



+++ This bug was initially created as a clone of Bug #1149863 +++
+++                                                           +++
+++ This bug has been filed to get a fix in release-3.6, when +++
+++ a patch has been merged, please post it to the bugs       +++
+++ listed in the 'blocks' field.                             +++

Description of problem: when setting transport.socket.bind-address it is
ignored except for actually binding the glusterd daemon. Basically NFS, SHD and
everything else tries to connect to 127.0.0.1:24007 instead of the actual
address bound. This means FUSE is the only option for connects and of course
the volume get corrupted shortly after.

Look in xlators/mgmt/glusterd/src/glusterd-utils.c:glusterd_nodesvc_start() for
possible fix. ie:

glusterd_nodesvc_start() calls runner_add_args( ... , "-s", "localhost", ...)

above provided by ndevos in IRC


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


How reproducible: set transport.socket.bind-address option and restart. viola!


Steps to Reproduce:
1. set transport.socket.bind-address option
2. restart glusterfs-server
3.

Actual results: no NFS, no SHD and anything else that attempts to connect to
127.0.0.1:24007


Expected results: it should work


Additional info:

--- Additional comment from Charles Williams on 2014-10-06 21:04:47 CEST ---

forgot to add:

in the "volume management" section of glusterd.vol is where you can set this
"option transport.socket.bind-address 123.123.123.123"

--- Additional comment from Anand Avati on 2014-10-06 23:37:59 CEST ---

REVIEW: http://review.gluster.org/8908 (glusterd: pass the bind-address to
starting services) posted (#1) for review on master by Niels de Vos
(ndevos at redhat.com)

--- Additional comment from Anand Avati on 2014-10-07 10:19:22 CEST ---

REVIEW: http://review.gluster.org/8908 (glusterd: pass the bind-address to
starting services) posted (#2) for review on master by Niels de Vos
(ndevos at redhat.com)

--- Additional comment from Anand Avati on 2014-10-07 10:19:25 CEST ---

REVIEW: http://review.gluster.org/8910 (glusterd: make bricks respect
'transport.socket.bind-address') posted (#1) for review on master by Niels de
Vos (ndevos at redhat.com)

--- Additional comment from Anand Avati on 2014-10-08 04:57:23 CEST ---

COMMIT: http://review.gluster.org/8908 committed in master by Krishnan
Parthasarathi (kparthas at redhat.com) 
------
commit 283fa797f4bf98130b42c36972305b8cb6e5aaaf
Author: Niels de Vos <ndevos at redhat.com>
Date:   Mon Oct 6 22:51:22 2014 +0200

    glusterd: pass the bind-address to starting services

    When the transport.socket.bind-address option is set to a hostname or
    ip-address, the services started by GlusterD fail to connect to the
    management daemon. GlusterD always forces the services to connect to the
    "localhost" hostname, even if it is not listening on that address.

    GlusterD should take the transport.socket.bind-address option into
    consideration, and pass that to the glusterfs-clients with the -s or
    --volfile commandline parameter.

    Note that this is not a change that removes all hard-coded dependencies
    on "localhost". This change merely makes it possible to start required
    services when the transport.socket.bind-address option is set.

    Change-Id: I36a0ed6c69342e6327adc258fea023929055d7f2
    BUG: 1149863
    Signed-off-by: Niels de Vos <ndevos at redhat.com>
    Reviewed-on: http://review.gluster.org/8908
    Tested-by: Gluster Build System <jenkins at build.gluster.com>
    Reviewed-by: Jeff Darcy <jdarcy at redhat.com>
    Reviewed-by: Krishnan Parthasarathi <kparthas at redhat.com>
    Tested-by: Krishnan Parthasarathi <kparthas at redhat.com>

--- Additional comment from Anand Avati on 2014-10-08 15:22:50 CEST ---

REVIEW: http://review.gluster.org/8910 (glusterd: make bricks respect
'transport.socket.bind-address') posted (#2) for review on master by Niels de
Vos (ndevos at redhat.com)

--- Additional comment from Anand Avati on 2014-10-09 06:10:12 CEST ---

COMMIT: http://review.gluster.org/8910 committed in master by Krishnan
Parthasarathi (kparthas at redhat.com) 
------
commit 430b874c4f1a171c106a9e1e6507e14e79805a1d
Author: Niels de Vos <ndevos at redhat.com>
Date:   Tue Oct 7 10:08:20 2014 +0200

    glusterd: make bricks respect 'transport.socket.bind-address'

    When GlusterD starts the brick processes, these will listen on all
    interfaces. When the 'transport.socket.bind-address' option is set in
    glusterd.vol, the brick processes should only listen on the specified
    hostname or IP-address.

    Change-Id: I8e7d1f294904081137c23f3446261329d0d13bba
    BUG: 1149863
    Signed-off-by: Niels de Vos <ndevos at redhat.com>
    Reviewed-on: http://review.gluster.org/8910
    Tested-by: Gluster Build System <jenkins at build.gluster.com>
    Reviewed-by: Krishnan Parthasarathi <kparthas at redhat.com>
    Tested-by: Krishnan Parthasarathi <kparthas at redhat.com>


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1149863
[Bug 1149863] Option transport.socket.bind-address ignored
-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=HTUVHXiFev&a=cc_unsubscribe


More information about the Bugs mailing list