summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaushal M <kaushal@redhat.com>2016-04-16 07:46:40 +0530
committerKaushal M <kaushal@redhat.com>2016-04-16 07:48:23 +0530
commit95cd42ebda087343ecb7267fa1fd5ac129c756e1 (patch)
tree43a1d3ebdd87a3ebfa860aba339d288e72e39d6e
parent1c62ca12df86eedf130de679ac99638a9d0ad82d (diff)
Revert "glusterd: Bug fixes for IPv6 support"
This reverts commit b33f3c95ec9c8112e6677e09cea05c4c462040d0. This commit exposes some issues with management encryption that prevents GlusterFS from operating properly. This will be added again once problems with management encryption are fixed.
-rw-r--r--api/src/glfs-mgmt.c12
-rw-r--r--extras/glusterd.vol.in1
-rw-r--r--glusterfsd/src/glusterfsd-mgmt.c11
-rw-r--r--libglusterfs/src/common-utils.c35
-rw-r--r--libglusterfs/src/common-utils.h6
-rw-r--r--rpc/rpc-lib/src/rpc-transport.c6
-rw-r--r--rpc/rpc-transport/socket/src/name.c9
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-replace-brick.c15
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volgen.c38
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volume-ops.c42
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volume-set.c6
-rwxr-xr-xxlators/mount/fuse/utils/mount.glusterfs.in3
-rwxr-xr-xxlators/mount/fuse/utils/mount_glusterfs.in3
13 files changed, 25 insertions, 162 deletions
diff --git a/api/src/glfs-mgmt.c b/api/src/glfs-mgmt.c
index 107820c..ba1f459 100644
--- a/api/src/glfs-mgmt.c
+++ b/api/src/glfs-mgmt.c
@@ -718,7 +718,6 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
rpc_transport_t *rpc_trans = NULL;
struct glfs *fs = NULL;
int ret = 0;
- struct dnscache6 *dnscache = NULL;
this = mydata;
rpc_trans = rpc->conn.trans;
@@ -737,17 +736,6 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
"failed to connect with remote-host: %s (%s)",
ctx->cmd_args.volfile_server,
strerror (errno));
-
- if (!rpc->disabled) {
- /*
- * Check if dnscache is exhausted for current server
- * and continue until cache is exhausted
- */
- dnscache = rpc_trans->dnscache;
- if (dnscache && dnscache->next) {
- break;
- }
- }
server = ctx->cmd_args.curr_server;
if (server->list.next == &ctx->cmd_args.volfile_servers) {
errno = ENOTCONN;
diff --git a/extras/glusterd.vol.in b/extras/glusterd.vol.in
index 957b277..316104c 100644
--- a/extras/glusterd.vol.in
+++ b/extras/glusterd.vol.in
@@ -7,6 +7,5 @@ volume management
option transport.socket.read-fail-log off
option ping-timeout 0
option event-threads 1
-# option transport.address-family inet6
# option base-port 49152
end-volume
diff --git a/glusterfsd/src/glusterfsd-mgmt.c b/glusterfsd/src/glusterfsd-mgmt.c
index 08e8e15..da80177 100644
--- a/glusterfsd/src/glusterfsd-mgmt.c
+++ b/glusterfsd/src/glusterfsd-mgmt.c
@@ -1893,7 +1893,6 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
rpc_transport_t *rpc_trans = NULL;
int need_term = 0;
int emval = 0;
- struct dnscache6 *dnscache = NULL;
this = mydata;
rpc_trans = rpc->conn.trans;
@@ -1906,16 +1905,6 @@ mgmt_rpc_notify (struct rpc_clnt *rpc, void *mydata, rpc_clnt_event_t event,
"failed to connect with remote-host: %s (%s)",
ctx->cmd_args.volfile_server,
strerror (errno));
- if (!rpc->disabled) {
- /*
- * Check if dnscache is exhausted for current server
- * and continue until cache is exhausted
- */
- dnscache = rpc_trans->dnscache;
- if (dnscache && dnscache->next) {
- break;
- }
- }
server = ctx->cmd_args.curr_server;
if (server->list.next == &ctx->cmd_args.volfile_servers) {
need_term = 1;
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c
index e3293dc..81e01bf 100644
--- a/libglusterfs/src/common-utils.c
+++ b/libglusterfs/src/common-utils.c
@@ -59,6 +59,11 @@
typedef int32_t (*rw_op_t)(int32_t fd, char *buf, int32_t size);
typedef int32_t (*rwv_op_t)(int32_t fd, const struct iovec *buf, int32_t size);
+struct dnscache6 {
+ struct addrinfo *first;
+ struct addrinfo *next;
+};
+
void
md5_wrapper(const unsigned char *data, size_t len, char *md5)
{
@@ -287,6 +292,9 @@ gf_resolve_ip6 (const char *hostname,
memset(&hints, 0, sizeof(hints));
hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM;
+#ifndef __NetBSD__
+ hints.ai_flags = AI_ADDRCONFIG;
+#endif
ret = gf_asprintf (&port_str, "%d", port);
if (-1 == ret) {
@@ -2185,14 +2193,6 @@ valid_ipv6_address (char *address, int length, gf_boolean_t wildcard_acc)
tmp = gf_strdup (address);
- /* Check for '%' for link local addresses */
- endptr = strchr(tmp, '%');
- if (endptr) {
- *endptr = '\0';
- length = strlen(tmp);
- endptr = NULL;
- }
-
/* Check for compressed form */
if (length <= 0 || tmp[length - 1] == ':') {
ret = 0;
@@ -3118,18 +3118,9 @@ gf_is_local_addr (char *hostname)
gf_boolean_t found = _gf_false;
char *ip = NULL;
xlator_t *this = NULL;
- struct addrinfo hints;
this = THIS;
-
- memset (&hints, 0, sizeof (hints));
- /*
- * Removing AI_ADDRCONFIG from default_hints
- * for being able to use link local ipv6 addresses
- */
- hints.ai_family = AF_UNSPEC;
-
- ret = getaddrinfo (hostname, NULL, &hints, &result);
+ ret = getaddrinfo (hostname, NULL, NULL, &result);
if (ret != 0) {
gf_msg (this->name, GF_LOG_ERROR, 0, LG_MSG_GETADDRINFO_FAILED,
@@ -3169,19 +3160,15 @@ gf_is_same_address (char *name1, char *name2)
struct addrinfo *q = NULL;
gf_boolean_t ret = _gf_false;
int gai_err = 0;
- struct addrinfo hints;
-
- memset (&hints, 0, sizeof (hints));
- hints.ai_family = AF_UNSPEC;
- gai_err = getaddrinfo(name1, NULL, &hints, &addr1);
+ gai_err = getaddrinfo(name1,NULL,NULL,&addr1);
if (gai_err != 0) {
gf_msg (name1, GF_LOG_WARNING, 0, LG_MSG_GETADDRINFO_FAILED,
"error in getaddrinfo: %s\n", gai_strerror(gai_err));
goto out;
}
- gai_err = getaddrinfo(name2, NULL, &hints, &addr2);
+ gai_err = getaddrinfo(name2,NULL,NULL,&addr2);
if (gai_err != 0) {
gf_msg (name2, GF_LOG_WARNING, 0, LG_MSG_GETADDRINFO_FAILED,
"error in getaddrinfo: %s\n", gai_strerror(gai_err));
diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h
index c152540..e374285 100644
--- a/libglusterfs/src/common-utils.h
+++ b/libglusterfs/src/common-utils.h
@@ -165,12 +165,6 @@ typedef struct dht_changelog_rename_info {
char buffer[1];
} dht_changelog_rename_info_t;
-struct dnscache6 {
- struct addrinfo *first;
- struct addrinfo *next;
-};
-
-
typedef int (*gf_cmp) (void *, void *);
diff --git a/rpc/rpc-lib/src/rpc-transport.c b/rpc/rpc-lib/src/rpc-transport.c
index 432bf46..0904dbe 100644
--- a/rpc/rpc-lib/src/rpc-transport.c
+++ b/rpc/rpc-lib/src/rpc-transport.c
@@ -692,6 +692,12 @@ rpc_transport_inet_options_build (dict_t **options, const char *hostname,
"failed to set remote-port with %d", port);
goto out;
}
+ ret = dict_set_str (dict, "transport.address-family", "inet");
+ if (ret) {
+ gf_log (THIS->name, GF_LOG_WARNING,
+ "failed to set addr-family with inet");
+ goto out;
+ }
ret = dict_set_str (dict, "transport-type", "socket");
if (ret) {
diff --git a/rpc/rpc-transport/socket/src/name.c b/rpc/rpc-transport/socket/src/name.c
index a8cf04d..650c5a7 100644
--- a/rpc/rpc-transport/socket/src/name.c
+++ b/rpc/rpc-transport/socket/src/name.c
@@ -149,10 +149,9 @@ client_fill_address_family (rpc_transport_t *this, sa_family_t *sa_family)
if (remote_host_data) {
gf_log (this->name, GF_LOG_DEBUG,
- "address-family not specified, marking it as unspec "
- "for getaddrinfo to resolve from (remote-host: %s)",
- data_to_str(remote_host_data));
- *sa_family = AF_UNSPEC;
+ "address-family not specified, guessing it "
+ "to be inet from (remote-host: %s)", data_to_str (remote_host_data));
+ *sa_family = AF_INET;
} else {
gf_log (this->name, GF_LOG_DEBUG,
"address-family not specified, guessing it "
@@ -396,7 +395,7 @@ af_inet_server_get_local_sockaddr (rpc_transport_t *this,
memset (&hints, 0, sizeof (hints));
hints.ai_family = addr->sa_family;
hints.ai_socktype = SOCK_STREAM;
- hints.ai_flags = AI_PASSIVE;
+ hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG;
ret = getaddrinfo(listen_host, service, &hints, &res);
if (ret != 0) {
diff --git a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c
index 3b84838..b1266aa 100644
--- a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c
+++ b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c
@@ -194,7 +194,6 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,
xlator_t *this = NULL;
gf_boolean_t is_force = _gf_false;
gsync_status_param_t param = {0,};
- char *c = NULL;
this = THIS;
GF_ASSERT (this);
@@ -346,18 +345,8 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,
GD_MSG_NO_MEMORY, "Memory allocation failed");
goto out;
}
-
- /*
- * IPv4 address contains '.' and ipv6 addresses contains ':'
- * So finding the last occurance of ':' to
- * mark the start of brick path
- */
- c = strrchr(dup_dstbrick, ':');
- if (c != NULL) {
- c[0] = '\0';
- host = dup_dstbrick;
- path = c++;
- }
+ host = strtok_r (dup_dstbrick, ":", &savetok);
+ path = strtok_r (NULL, ":", &savetok);
if (!host || !path) {
gf_msg (this->name, GF_LOG_ERROR, 0,
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
index 4db3538..086f053 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
@@ -2086,7 +2086,6 @@ brick_graph_add_server (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
char key[1024] = {0};
char *ssl_user = NULL;
char *value = NULL;
- char *address_family_data = NULL;
if (!graph || !volinfo || !set_dict || !brickinfo)
goto out;
@@ -2123,17 +2122,6 @@ brick_graph_add_server (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
RPC_SET_OPT(xl, SSL_DH_PARAM_OPT, "ssl-dh-param", return -1);
RPC_SET_OPT(xl, SSL_EC_CURVE_OPT, "ssl-ec-curve", return -1);
- if (dict_get_str (volinfo->dict, "transport.address-family",
- &address_family_data) == 0) {
- ret = xlator_set_option (xl, "transport.address-family",
- address_family_data);
- if (ret) {
- gf_log ("glusterd", GF_LOG_WARNING,
- "failed to set transport.address-family");
- return -1;
- }
- }
-
if (username) {
memset (key, 0, sizeof (key));
snprintf (key, sizeof (key), "auth.login.%s.allow",
@@ -2181,7 +2169,6 @@ brick_graph_add_pump (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
char *password = NULL;
char *ptranst = NULL;
char *value = NULL;
- char *address_family_data = NULL;
if (!graph || !volinfo || !set_dict)
@@ -2243,18 +2230,6 @@ brick_graph_add_pump (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
if (ret)
return -1;
- if (dict_get_str (volinfo->dict, "transport.address-family",
- &address_family_data) == 0) {
- ret = xlator_set_option (rbxl,
- "transport.address-family",
- address_family_data);
- if (ret) {
- gf_log ("glusterd", GF_LOG_WARNING,
- "failed to set transport.address-family");
- return -1;
- }
- }
-
xl = volgen_graph_add_nolink (graph, "cluster/pump", "%s-pump",
volinfo->volname);
if (!xl)
@@ -2731,7 +2706,6 @@ volgen_graph_build_client (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
char *ssl_str = NULL;
gf_boolean_t ssl_bool = _gf_false;
char *value = NULL;
- char *address_family_data = NULL;
GF_ASSERT (graph);
GF_ASSERT (subvol);
@@ -2761,18 +2735,6 @@ volgen_graph_build_client (volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
if (ret)
goto err;
- if (dict_get_str (volinfo->dict, "transport.address-family",
- &address_family_data) == 0) {
- ret = xlator_set_option (xl,
- "transport.address-family",
- address_family_data);
- if (ret) {
- gf_log ("glusterd", GF_LOG_WARNING,
- "failed to set transport.address-family");
- goto err;
- }
- }
-
ret = dict_get_uint32 (set_dict, "trusted-client",
&client_type);
diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c
index 6616680..24a30ea 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c
@@ -285,7 +285,6 @@ __glusterd_handle_create_volume (rpcsvc_request_t *req)
xlator_t *this = NULL;
char *free_ptr = NULL;
char *trans_type = NULL;
- char *address_family_str = NULL;
uuid_t volume_id = {0,};
uuid_t tmp_uuid = {0};
int32_t type = 0;
@@ -366,8 +365,6 @@ __glusterd_handle_create_volume (rpcsvc_request_t *req)
goto out;
}
-
-
ret = dict_get_str (dict, "transport", &trans_type);
if (ret) {
snprintf (err_str, sizeof (err_str), "Unable to get "
@@ -376,30 +373,6 @@ __glusterd_handle_create_volume (rpcsvc_request_t *req)
GD_MSG_DICT_GET_FAILED, "%s", err_str);
goto out;
}
-
- ret = dict_get_str (this->options, "transport.address-family",
- &address_family_str);
-
- if (!ret) {
- ret = dict_set_dynstr_with_alloc (dict,
- "transport.address-family",
- address_family_str);
- if (ret) {
- gf_log (this->name, GF_LOG_ERROR,
- "failed to set transport.address-family");
- goto out;
- }
- } else if (!strcmp(trans_type, "tcp")) {
- /* Setting default as inet for trans_type tcp */
- ret = dict_set_dynstr_with_alloc (dict,
- "transport.address-family",
- "inet");
- if (ret) {
- gf_log (this->name, GF_LOG_ERROR,
- "failed to set transport.address-family");
- goto out;
- }
- }
ret = dict_get_str (dict, "bricks", &bricks);
if (ret) {
snprintf (err_str, sizeof (err_str), "Unable to get bricks for "
@@ -2117,7 +2090,6 @@ glusterd_op_create_volume (dict_t *dict, char **op_errstr)
char msg[1024] __attribute__((unused)) = {0, };
char *brick_mount_dir = NULL;
char key[PATH_MAX] = "";
- char *address_family_str = NULL;
this = THIS;
GF_ASSERT (this);
@@ -2390,20 +2362,6 @@ glusterd_op_create_volume (dict_t *dict, char **op_errstr)
goto out;
}
- ret = dict_get_str (dict, "transport.address-family",
- &address_family_str);
-
- if (!ret) {
- ret = dict_set_dynstr_with_alloc(volinfo->dict,
- "transport.address-family", address_family_str);
- if (ret) {
- gf_log (this->name, GF_LOG_ERROR,
- "Failed to set transport.address-family for %s",
- volinfo->volname);
- goto out;
- }
- }
-
gd_update_volume_op_versions (volinfo);
volinfo->caps = caps;
diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c
index 59b31e2..c9b8003 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c
@@ -1642,12 +1642,6 @@ struct volopt_map_entry glusterd_volopt_map[] = {
.option = "!ssl-ec-curve",
.op_version = GD_OP_VERSION_3_7_4,
},
- { .key = "transport.address-family",
- .voltype = "protocol/server",
- .option = "!address-family",
- .op_version = GD_OP_VERSION_3_7_4,
- .type = NO_DOC,
- },
/* Performance xlators enable/disbable options */
{ .key = "performance.write-behind",
diff --git a/xlators/mount/fuse/utils/mount.glusterfs.in b/xlators/mount/fuse/utils/mount.glusterfs.in
index b0af1af..7f314da 100755
--- a/xlators/mount/fuse/utils/mount.glusterfs.in
+++ b/xlators/mount/fuse/utils/mount.glusterfs.in
@@ -595,8 +595,7 @@ main ()
fi
[ -r "$volfile_loc" ] || {
- # '%' included to support ipv6 link local addresses
- server_ip=$(echo "$volfile_loc" | sed -n 's/\([a-zA-Z0-9:%.\-]*\):.*/\1/p');
+ server_ip=$(echo "$volfile_loc" | sed -n 's/\([a-zA-Z0-9:.\-]*\):.*/\1/p');
volume_str=$(echo "$volfile_loc" | sed -n 's/.*:\([^ ]*\).*/\1/p');
[ -n "$volume_str" ] && {
volume_id="$volume_str";
diff --git a/xlators/mount/fuse/utils/mount_glusterfs.in b/xlators/mount/fuse/utils/mount_glusterfs.in
index eca8455..3d58c29 100755
--- a/xlators/mount/fuse/utils/mount_glusterfs.in
+++ b/xlators/mount/fuse/utils/mount_glusterfs.in
@@ -501,8 +501,7 @@ main ()
done
[ -r "$volfile_loc" ] || {
- # '%' included to support ipv6 link local addresses
- server_ip=$(echo "$volfile_loc" | sed -n 's/\([a-zA-Z0-9:%.\-]*\):.*/\1/p');
+ server_ip=$(echo "$volfile_loc" | sed -n 's/\([a-zA-Z0-9:.\-]*\):.*/\1/p');
volume_str=$(echo "$volfile_loc" | sed -n 's/.*:\([^ ]*\).*/\1/p');
[ -n "$volume_str" ] && {
volume_id="$volume_str";