233933
From 4901fcc0cc507accf30e1a4bdd020a5676488751 Mon Sep 17 00:00:00 2001
233933
From: Niels de Vos <ndevos@redhat.com>
233933
Date: Mon, 8 Apr 2019 12:14:34 +0200
233933
Subject: [PATCH 115/124] core: only log seek errors if SEEK_HOLE/SEEK_DATA is
233933
 available
233933
233933
On RHEL-6 there is no support for SEEK_HOLE/SEEK_DATA and this causes
233933
the POSIX xlator to return errno=EINVAL. Because of this, the rpc-server
233933
xlator will log all 'failed' seek attempts. When applications call
233933
seek() often, the brick logs can grow very quickly and fill up the
233933
disks.
233933
233933
Messages that get logged are like
233933
[server-rpc-fops.c:2091:server_seek_cbk] 0-vol01-server: 4947: SEEK-2 (53920aee-062c-4598-aa50-2b4d7821b204), client: worker.example.com-7808-2019/02/08-18:04:57:903430-vol01-client-0-0-0, error-xlator: vol01-posix [Invalid argument]
233933
233933
The problem can be reproduced by running a Gluster Server on RHEL-6,
233933
with a client running on RHEL-7. The client should execute an
233933
application that calls lseek() with SEEK_HOLE/SEEK_DATA.
233933
233933
>Change-Id: I7b6c16f8e0ba1a183e845cfdb8d5a3f8caeab138
233933
>Fixes: bz#1697316
233933
>Signed-off-by: Niels de Vos <ndevos@redhat.com>
233933
233933
upstream patch: https://review.gluster.org/#/c/glusterfs/+/22526/
233933
233933
BUG: 1696903
233933
Change-Id: I7b6c16f8e0ba1a183e845cfdb8d5a3f8caeab138
233933
Signed-off-by: Sunil Kumar Acharya <sheggodu@redhat.com>
233933
Reviewed-on: https://code.engineering.redhat.com/gerrit/168527
233933
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
233933
Tested-by: RHGS Build Bot <nigelb@redhat.com>
233933
---
233933
 libglusterfs/src/common-utils.c | 4 ++++
233933
 1 file changed, 4 insertions(+)
233933
233933
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c
233933
index a0c83c0..70d5d21 100644
233933
--- a/libglusterfs/src/common-utils.c
233933
+++ b/libglusterfs/src/common-utils.c
233933
@@ -4500,9 +4500,13 @@ fop_log_level(glusterfs_fop_t fop, int op_errno)
233933
             return GF_LOG_DEBUG;
233933
 
233933
     if (fop == GF_FOP_SEEK) {
233933
+#ifdef HAVE_SEEK_HOLE
233933
         if (op_errno == ENXIO) {
233933
             return GF_LOG_DEBUG;
233933
         }
233933
+#else
233933
+        return GF_LOG_DEBUG;
233933
+#endif
233933
     }
233933
 
233933
     return GF_LOG_ERROR;
233933
-- 
233933
1.8.3.1
233933