From 009363dbc162dca71efce6689497b3948a14bd82 Mon Sep 17 00:00:00 2001 From: Kotresh HR Date: Thu, 9 Apr 2015 19:00:58 +0530 Subject: geo-rep: Don't log geo-rep safe errors in mount logs EEXIST and ENOENT are safe errors for geo-replication. Since mkdir is captured in all the bricks of the changelog. mkdir is tried multiple times as per the number of bricks. The first one to process by gsyncd will succeed and all others will get EEXIST. Hence EEXIST is a safe error and can be ignored. Similarly ENOENT also in rm -rf case. And also gsyncd validates these errors and log them in master if it is genuine error. This is coming up with the patch http://review.gluster.org/#/c/10048/ Hence ignoring above said safe errors. Change-Id: I10ae86b11d49c7c3ba2be3110dace6b33daa509e BUG: 1210562 Signed-off-by: Kotresh HR Reviewed-on: http://review.gluster.org/10184 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- xlators/mount/fuse/src/fuse-bridge.c | 2 +- xlators/protocol/client/src/client-rpc-fops.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'xlators') diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index d8e7012bb6c..74a84902fa5 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -1253,7 +1253,7 @@ fuse_err_cbk (call_frame_t *frame, void *cookie, xlator_t *this, state->loc.path ? state->loc.path : "ERR"); send_fuse_err (this, finh, 0); - } else { + } else if (GF_IGNORE_IF_GSYNCD_SAFE_ERROR(frame, op_errno)) { gf_log ("glusterfs-fuse", GF_LOG_WARNING, "%"PRIu64": %s() %s => -1 (%s)", frame->root->unique, diff --git a/xlators/protocol/client/src/client-rpc-fops.c b/xlators/protocol/client/src/client-rpc-fops.c index 55fd327da8e..55e8d47adc9 100644 --- a/xlators/protocol/client/src/client-rpc-fops.c +++ b/xlators/protocol/client/src/client-rpc-fops.c @@ -299,7 +299,8 @@ client3_3_mkdir_cbk (struct rpc_req *req, struct iovec *iov, int count, rsp.op_errno, out); out: - if (rsp.op_ret == -1) { + if (rsp.op_ret == -1 && + GF_IGNORE_IF_GSYNCD_SAFE_ERROR(frame, rsp.op_errno)) { gf_log (this->name, GF_LOG_WARNING, "remote operation failed: %s. Path: %s", strerror (gf_error_to_errno (rsp.op_errno)), -- cgit