diff options
author | Vijaikumar M <vmallika@redhat.com> | 2014-05-13 17:36:01 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2014-05-19 19:03:55 -0700 |
commit | c13c1fd5a487eeca269e8b62114f607487ee30f6 (patch) | |
tree | a9ca13e83a6dbb99def605e172542974adb932c3 /xlators | |
parent | 1dd80a2e7762bc72d11a432a1ebd16be181dcb86 (diff) |
glusterd: Disable ping-timer between glusterd and brick process
When there are too many IO happening, brick process epoll thread
will be busy and fails to respond to the glusterd pick packet within
30sec.
Also epoll thread can be blocked by a big-lock.
Solution is to disable ping-timer by default and only enable where ever
required
Later when the epoll thread model changed and made lighter,
we need to revert back this change. http://review.gluster.com/3842 is
one such approach.
Change-Id: I7f80ad3eb00f7d9c4d4527305932f7cf4920e73f
BUG: 1097224
Signed-off-by: Vijaikumar M <vmallika@redhat.com>
Reviewed-on: http://review.gluster.org/7753
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 3 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.c | 9 | ||||
-rw-r--r-- | xlators/protocol/client/src/client.c | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index e98b5a948de..165fdd882b1 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -2250,6 +2250,9 @@ volgen_graph_build_clients (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, "%s", brick->brick_id); if (!xl) goto out; + ret = xlator_set_option (xl, "ping-timeout", "42"); + if (ret) + goto out; ret = xlator_set_option (xl, "remote-host", brick->hostname); if (ret) goto out; diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index d89c1ef7bcf..a5927e66a96 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -40,6 +40,7 @@ #include "glusterd-locks.h" #include "common-utils.h" #include "run.h" +#include "rpc-clnt-ping.h" #include "syncop.h" @@ -1623,10 +1624,10 @@ struct volume_options options[] = { .description = "directory where the bricks for the snapshots will be created" }, { .key = {"ping-timeout"}, - .type = GF_OPTION_TYPE_INT, - .min = 1, - .max = 100, - .default_value = "30", + .type = GF_OPTION_TYPE_TIME, + .min = 0, + .max = 300, + .default_value = TOSTRING(RPC_DEFAULT_PING_TIMEOUT), }, { .key = {NULL} }, }; diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index aecd8f8fb07..e181292f433 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -21,7 +21,7 @@ #include "statedump.h" #include "compat-errno.h" -#include "xdr-rpc.h" +#include "xdr-rpc.h" #include "glusterfs3.h" extern rpc_clnt_prog_t clnt_handshake_prog; @@ -2841,7 +2841,7 @@ struct volume_options options[] = { }, { .key = {"ping-timeout"}, .type = GF_OPTION_TYPE_TIME, - .min = 1, + .min = 0, .max = 1013, .default_value = "42", .description = "Time duration for which the client waits to " |