summaryrefslogtreecommitdiffstats
path: root/xlators/features/bit-rot/src/stub
diff options
context:
space:
mode:
authorMohamed Ashiq <ashiq333@gmail.com>2015-04-17 17:33:49 +0530
committerVenky Shankar <vshankar@redhat.com>2015-06-24 04:06:42 -0700
commit2f0d36d16c241365760aaa6d857b7a4d438e1042 (patch)
tree75147f5465af9a91a116ca09f859acefd457a899 /xlators/features/bit-rot/src/stub
parent1ff820381b33b65c54d5e7019a670b9dc1cc6844 (diff)
bit-rot : New logging framework for bit-rot log message
Change-Id: I83c494f2bb60d29495cd643659774d430325af0a BUG: 1194640 Signed-off-by: Mohamed Ashiq <ashiq333@gmail.com> Reviewed-on: http://review.gluster.org/10297 Tested-by: Venky Shankar <vshankar@redhat.com> Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com> Reviewed-by: Gaurav Kumar Garg <ggarg@redhat.com> Tested-by: NetBSD Build System <jenkins@build.gluster.org> Reviewed-by: Venky Shankar <vshankar@redhat.com>
Diffstat (limited to 'xlators/features/bit-rot/src/stub')
-rw-r--r--xlators/features/bit-rot/src/stub/Makefile.am2
-rw-r--r--xlators/features/bit-rot/src/stub/bit-rot-stub-messages.h158
-rw-r--r--xlators/features/bit-rot/src/stub/bit-rot-stub.c116
-rw-r--r--xlators/features/bit-rot/src/stub/bit-rot-stub.h7
4 files changed, 230 insertions, 53 deletions
diff --git a/xlators/features/bit-rot/src/stub/Makefile.am b/xlators/features/bit-rot/src/stub/Makefile.am
index 579dd1c..30e7ca7 100644
--- a/xlators/features/bit-rot/src/stub/Makefile.am
+++ b/xlators/features/bit-rot/src/stub/Makefile.am
@@ -7,7 +7,7 @@ bitrot_stub_la_SOURCES = bit-rot-stub.c
bitrot_stub_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la
noinst_HEADERS = bit-rot-stub.h bit-rot-common.h bit-rot-stub-mem-types.h \
- bit-rot-object-version.h
+ bit-rot-object-version.h bit-rot-stub-messages.h
AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub-messages.h b/xlators/features/bit-rot/src/stub/bit-rot-stub-messages.h
new file mode 100644
index 0000000..d940b65
--- /dev/null
+++ b/xlators/features/bit-rot/src/stub/bit-rot-stub-messages.h
@@ -0,0 +1,158 @@
+/*
+ Copyright (c) 2015 Red Hat, Inc. <http://www.redhat.com>
+ This file is part of GlusterFS.
+
+ This file is licensed to you under your choice of the GNU Lesser
+ General Public License, version 3 or any later version (LGPLv3 or
+ later), or the GNU General Public License, version 2 (GPLv2), in all
+ cases as published by the Free Software Foundation.
+ */
+
+#ifndef _BITROT_STUB_MESSAGES_H_
+#define _BITROT_STUB_MESSAGES_H_
+
+#include "glfs-message-id.h"
+
+/* file bit-rot-stub-messages.h
+ * brief BIT-ROT log-message IDs and their descriptions
+ */
+
+/* NOTE: Rules for message additions
+ * 1) Each instance of a message is _better_ left with a unique message ID, even
+ * if the message format is the same. Reasoning is that, if the message
+ * format needs to change in one instance, the other instances are not
+ * impacted or the new change does not change the ID of the instance being
+ * modified.
+ * 2) Addition of a message,
+ * - Should increment the GLFS_NUM_MESSAGES
+ * - Append to the list of messages defined, towards the end
+ * - Retain macro naming as glfs_msg_X (for redability across developers)
+ * NOTE: Rules for message format modifications
+ * 3) Check acorss the code if the message ID macro in question is reused
+ * anywhere. If reused then then the modifications should ensure correctness
+ * everywhere, or needs a new message ID as (1) above was not adhered to. If
+ * not used anywhere, proceed with the required modification.
+ * NOTE: Rules for message deletion
+ * 4) Check (3) and if used anywhere else, then cannot be deleted. If not used
+ * anywhere, then can be deleted, but will leave a hole by design, as
+ * addition rules specify modification to the end of the list and not filling
+ * holes.
+ */
+
+#define GLFS_BITROT_STUB_BASE GLFS_MSGID_COMP_BITROT_STUB
+#define GLFS_BITROT_STUB_NUM_MESSAGES 15
+#define GLFS_MSGID_END (GLFS_BITROT_STUB_BASE + \
+ GLFS_BITROT_STUB_NUM_MESSAGES + 1)
+/* Messaged with message IDs */
+#define glfs_msg_start_x GLFS_BITROT_STUB_BASE, "Invalid: Start of messages"
+/*------------*/
+
+
+#define BRS_MSG_NO_MEMORY (GLFS_BITROT_STUB_BASE + 1)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_SET_EVENT_FAILED (GLFS_BITROT_STUB_BASE + 2)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_MEM_ACNT_FAILED (GLFS_BITROT_STUB_BASE + 3)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_CREATE_FRAME_FAILED (GLFS_BITROT_STUB_BASE + 4)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_SET_CONTEXT_FAILED (GLFS_BITROT_STUB_BASE + 5)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_CHANGE_VERSION_FAILED (GLFS_BITROT_STUB_BASE + 6)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_ADD_FD_TO_LIST_FAILED (GLFS_BITROT_STUB_BASE + 7)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_SET_FD_CONTEXT_FAILED (GLFS_BITROT_STUB_BASE + 8)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_CREATE_ANONYMOUS_FD_FAILED (GLFS_BITROT_STUB_BASE + 9)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_NO_CHILD (GLFS_BITROT_STUB_BASE + 10)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_STUB_ALLOC_FAILED (GLFS_BITROT_STUB_BASE + 11)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_GET_INODE_CONTEXT_FAILED (GLFS_BITROT_STUB_BASE + 12)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_CANCEL_SIGN_THREAD_FAILED (GLFS_BITROT_STUB_BASE + 13)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_ADD_FD_TO_INODE (GLFS_BITROT_STUB_BASE + 14)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+#define BRS_MSG_SIGN_VERSION_ERROR (GLFS_BITROT_STUB_BASE + 15)
+/*!
+ * @messageid
+ * @diagnosis
+ * @recommendedaction
+ *
+ */
+/*------------*/
+#define glfs_msg_end_x GLFS_MSGID_END, "Invalid: End of messages"
+#endif /* !_BITROT_STUB_MESSAGES_H_ */
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub.c b/xlators/features/bit-rot/src/stub/bit-rot-stub.c
index 5238f43..fe019f4 100644
--- a/xlators/features/bit-rot/src/stub/bit-rot-stub.c
+++ b/xlators/features/bit-rot/src/stub/bit-rot-stub.c
@@ -20,7 +20,7 @@
#include "bit-rot-stub.h"
#include "bit-rot-stub-mem-types.h"
-
+#include "bit-rot-stub-messages.h"
#include "bit-rot-common.h"
#define BR_STUB_REQUEST_COOKIE 0x1
@@ -46,8 +46,8 @@ mem_acct_init (xlator_t *this)
ret = xlator_mem_acct_init (this, gf_br_stub_mt_end + 1);
if (ret != 0) {
- gf_log (this->name, GF_LOG_WARNING, "Memory accounting"
- " init failed");
+ gf_msg (this->name, GF_LOG_WARNING, 0, BRS_MSG_MEM_ACNT_FAILED,
+ "Memory accounting init failed");
return ret;
}
@@ -60,12 +60,13 @@ init (xlator_t *this)
int32_t ret = 0;
char *tmp = NULL;
struct timeval tv = {0,};
- br_stub_private_t *priv = NULL;
+ br_stub_private_t *priv = NULL;
- if (!this->children) {
- gf_log (this->name, GF_LOG_ERROR, "FATAL: no children");
- goto error_return;
- }
+ if (!this->children) {
+ gf_msg (this->name, GF_LOG_ERROR, 0, BRS_MSG_NO_CHILD,
+ "FATAL: no children");
+ goto error_return;
+ }
priv = GF_CALLOC (1, sizeof (*priv), gf_br_stub_mt_private_t);
if (!priv)
@@ -94,7 +95,7 @@ init (xlator_t *this)
if (ret != 0)
goto cleanup_lock;
- gf_log (this->name, GF_LOG_DEBUG, "bit-rot stub loaded");
+ gf_msg_debug (this->name, 0, "bit-rot stub loaded");
this->private = priv;
return 0;
@@ -122,7 +123,8 @@ fini (xlator_t *this)
ret = gf_thread_cleanup_xint (priv->signth);
if (ret) {
- gf_log (this->name, GF_LOG_ERROR,
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_CANCEL_SIGN_THREAD_FAILED,
"Could not cancel sign serializer thread");
goto out;
}
@@ -335,8 +337,9 @@ br_stub_need_versioning (xlator_t *this,
ret = br_stub_get_inode_ctx (this, fd->inode, &ctx_addr);
if (ret < 0) {
- gf_log (this->name, GF_LOG_ERROR, "failed to get the inode "
- "context for the inode %s",
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_GET_INODE_CONTEXT_FAILED, "failed to get the "
+ "inode context for the inode %s",
uuid_utoa (fd->inode->gfid));
goto error_return;
}
@@ -370,8 +373,9 @@ br_stub_anon_fd_ctx (xlator_t *this, fd_t *fd, br_stub_inode_ctx_t *ctx)
if (!br_stub_fd) {
ret = br_stub_add_fd_to_inode (this, fd, ctx);
if (ret) {
- gf_log (this->name, GF_LOG_ERROR, "failed to "
- "add fd to the inode (gfid: %s)",
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_ADD_FD_TO_INODE, "failed to add fd to "
+ "the inode (gfid: %s)",
uuid_utoa (fd->inode->gfid));
goto out;
}
@@ -392,8 +396,9 @@ br_stub_versioning_prep (call_frame_t *frame,
local = br_stub_alloc_local (this);
if (!local) {
- gf_log (this->name, GF_LOG_ERROR, "local allocation failed "
- "(gfid: %s)", uuid_utoa (fd->inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, ENOMEM, BRS_MSG_NO_MEMORY,
+ "local allocation failed (gfid: %s)",
+ uuid_utoa (fd->inode->gfid));
goto error_return;
}
@@ -688,9 +693,10 @@ br_stub_compare_sign_version (xlator_t *this,
if (ctx->currentversion < sbuf->signedversion) {
invalid = _gf_true;
} else if (ctx->currentversion > sbuf->signedversion) {
- gf_log (this->name, GF_LOG_DEBUG, "\"Signing version\" "
- "(%lu) lower than \"Current version \" (%lu)",
- ctx->currentversion, sbuf->signedversion);
+ gf_msg_debug (this->name, 0, "\"Signing version\" "
+ "(%lu) lower than \"Current version \" "
+ "(%lu)", ctx->currentversion,
+ sbuf->signedversion);
*fakesuccess = 1;
}
}
@@ -698,9 +704,10 @@ br_stub_compare_sign_version (xlator_t *this,
if (invalid) {
ret = -1;
- gf_log (this->name, GF_LOG_WARNING,
- "Signing version exceeds current version [%lu > %lu]",
- sbuf->signedversion, ctx->currentversion);
+ gf_msg (this->name, GF_LOG_WARNING, 0,
+ BRS_MSG_SIGN_VERSION_ERROR, "Signing version exceeds "
+ "current version [%lu > %lu]", sbuf->signedversion,
+ ctx->currentversion);
}
out:
@@ -870,9 +877,9 @@ br_stub_handle_object_reopen (call_frame_t *frame,
stub = fop_fsetxattr_cbk_stub (frame, br_stub_fsetxattr_resume,
0, 0, NULL);
if (!stub) {
- gf_log (this->name, GF_LOG_ERROR, "failed to allocate stub for "
- "fsetxattr fop (gfid: %s), unwinding",
- uuid_utoa (fd->inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, 0, BRS_MSG_STUB_ALLOC_FAILED,
+ "failed to allocate stub for fsetxattr fop (gfid: %s),"
+ " unwinding", uuid_utoa (fd->inode->gfid));
goto cleanup_local;
}
@@ -998,8 +1005,9 @@ br_stub_is_object_stale (xlator_t *this, call_frame_t *frame, inode_t *inode,
ret = br_stub_get_inode_ctx (this, inode, &ctx_addr);
if (ret) {
- gf_log (this->name, GF_LOG_ERROR, "failed to get the inode "
- "context for %s", uuid_utoa (inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_GET_INODE_CONTEXT_FAILED, "failed to get the "
+ "inode context for %s", uuid_utoa (inode->gfid));
goto out;
}
@@ -1384,9 +1392,9 @@ br_stub_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,
offset, flags, iobref, xdata);
if (!stub) {
- gf_log (this->name, GF_LOG_ERROR, "failed to allocate stub for "
- "write fop (gfid: %s), unwinding",
- uuid_utoa (fd->inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, 0, BRS_MSG_STUB_ALLOC_FAILED,
+ "failed to allocate stub for write fop (gfid: %s), "
+ "unwinding", uuid_utoa (fd->inode->gfid));
goto cleanup_local;
}
@@ -1491,9 +1499,9 @@ br_stub_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd,
stub = fop_ftruncate_stub (frame, br_stub_ftruncate_resume, fd, offset,
xdata);
if (!stub) {
- gf_log (this->name, GF_LOG_ERROR, "failed to allocate stub for "
- "ftruncate fop (gfid: %s), unwinding",
- uuid_utoa (fd->inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, 0, BRS_MSG_STUB_ALLOC_FAILED,
+ "failed to allocate stub for ftruncate fop (gfid: %s),"
+ " unwinding", uuid_utoa (fd->inode->gfid));
goto cleanup_local;
}
@@ -1592,8 +1600,10 @@ br_stub_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc,
fd = fd_anonymous (loc->inode);
if (!fd) {
- gf_log (this->name, GF_LOG_ERROR, "failed to create anonymous "
- "fd for the inode %s", uuid_utoa (loc->inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_CREATE_ANONYMOUS_FD_FAILED, "failed to create "
+ "anonymous fd for the inode %s",
+ uuid_utoa (loc->inode->gfid));
goto unwind;
}
@@ -1619,9 +1629,9 @@ br_stub_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc,
stub = fop_truncate_stub (frame, br_stub_truncate_resume, loc, offset,
xdata);
if (!stub) {
- gf_log (this->name, GF_LOG_ERROR, "failed to allocate stub for "
- "truncate fop (gfid: %s), unwinding",
- uuid_utoa (fd->inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, 0, BRS_MSG_STUB_ALLOC_FAILED,
+ "failed to allocate stub for truncate fop (gfid: %s), "
+ "unwinding", uuid_utoa (fd->inode->gfid));
goto cleanup_local;
}
@@ -1685,8 +1695,9 @@ br_stub_open (call_frame_t *frame, xlator_t *this,
ret = br_stub_get_inode_ctx (this, fd->inode, &ctx_addr);
if (ret) {
- gf_log (this->name, GF_LOG_ERROR, "failed to get the inode "
- "context for the file %s (gfid: %s)", loc->path,
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_GET_INODE_CONTEXT_FAILED, "failed to get the "
+ "inode context for the file %s (gfid: %s)", loc->path,
uuid_utoa (fd->inode->gfid));
goto unwind;
}
@@ -1697,8 +1708,10 @@ br_stub_open (call_frame_t *frame, xlator_t *this,
ret = br_stub_add_fd_to_inode (this, fd, ctx);
if (ret) {
- gf_log (this->name, GF_LOG_ERROR, "failed add fd to the list "
- "(gfid: %s)", uuid_utoa (fd->inode->gfid));
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_ADD_FD_TO_LIST_FAILED,
+ "failed add fd to the list (gfid: %s)",
+ uuid_utoa (fd->inode->gfid));
goto unwind;
}
@@ -1730,7 +1743,8 @@ br_stub_add_fd_to_inode (xlator_t *this, fd_t *fd, br_stub_inode_ctx_t *ctx)
ret = br_stub_require_release_call (this, fd, &br_stub_fd);
if (ret) {
- gf_log (this->name, GF_LOG_ERROR, "failed to set the fd "
+ gf_msg (this->name, GF_LOG_ERROR, 0,
+ BRS_MSG_SET_FD_CONTEXT_FAILED, "failed to set the fd "
"context for the file (gfid: %s)",
uuid_utoa (fd->inode->gfid));
goto out;
@@ -2118,7 +2132,7 @@ br_stub_send_ipc_fop (xlator_t *this, fd_t *fd, unsigned long releaseversion,
xdata = dict_new ();
if (!xdata) {
- gf_log (this->name, GF_LOG_WARNING,
+ gf_msg (this->name, GF_LOG_WARNING, ENOMEM, BRS_MSG_NO_MEMORY,
"dict allocation failed: cannot send IPC FOP "
"to changelog");
goto out;
@@ -2127,14 +2141,16 @@ br_stub_send_ipc_fop (xlator_t *this, fd_t *fd, unsigned long releaseversion,
ret = dict_set_static_bin (xdata,
"RELEASE-EVENT", &ev, CHANGELOG_EV_SIZE);
if (ret) {
- gf_log (this->name, GF_LOG_WARNING,
+ gf_msg (this->name, GF_LOG_WARNING, 0, BRS_MSG_SET_EVENT_FAILED,
"cannot set release event in dict");
goto dealloc_dict;
}
frame = create_frame (this, this->ctx->pool);
if (!frame) {
- gf_log (this->name, GF_LOG_WARNING, "create_frame() failure");
+ gf_msg (this->name, GF_LOG_WARNING, 0,
+ BRS_MSG_CREATE_FRAME_FAILED,
+ "create_frame() failure");
goto dealloc_dict;
}
@@ -2240,10 +2256,10 @@ br_stub_release (xlator_t *this, fd_t *fd)
UNLOCK (&inode->lock);
if (ret) {
- gf_log (this->name, GF_LOG_DEBUG,
- "releaseversion: %lu | flags: %d | signinfo: %d",
- (unsigned long) ntohl (releaseversion),
- flags, ntohl(signinfo));
+ gf_msg_debug (this->name, 0, "releaseversion: %lu | flags: %d "
+ "| signinfo: %d",
+ (unsigned long) ntohl (releaseversion), flags,
+ ntohl(signinfo));
br_stub_send_ipc_fop (this, fd, releaseversion, signinfo);
}
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub.h b/xlators/features/bit-rot/src/stub/bit-rot-stub.h
index 43be68b..4747cc8 100644
--- a/xlators/features/bit-rot/src/stub/bit-rot-stub.h
+++ b/xlators/features/bit-rot/src/stub/bit-rot-stub.h
@@ -19,6 +19,7 @@
#include "bit-rot-stub-mem-types.h"
#include "bit-rot-common.h"
+#include "bit-rot-stub-messages.h"
typedef int (br_stub_version_cbk) (call_frame_t *, void *,
xlator_t *, int32_t, int32_t, dict_t *);
@@ -218,7 +219,8 @@ br_stub_require_release_call (xlator_t *this, fd_t *fd, br_stub_fd_t **fd_ctx)
ret = br_stub_fd_ctx_set (this, fd, br_stub_fd);
if (ret)
- gf_log (this->name, GF_LOG_WARNING,
+ gf_msg (this->name, GF_LOG_WARNING, 0,
+ BRS_MSG_SET_CONTEXT_FAILED,
"could not set fd context (for release callback");
else
*fd_ctx = br_stub_fd;
@@ -272,7 +274,8 @@ __br_stub_set_ongoing_version (br_stub_inode_ctx_t *ctx, unsigned long version)
if (ctx->currentversion < version)
ctx->currentversion = version;
else
- gf_log ("bit-rot-stub", GF_LOG_WARNING, "current version: %lu"
+ gf_msg ("bit-rot-stub", GF_LOG_WARNING, 0,
+ BRS_MSG_CHANGE_VERSION_FAILED, "current version: %lu"
"new version: %lu", ctx->currentversion, version);
}