3604df
From 46394669958da41f68fb98aac33efa2a567bdc13 Mon Sep 17 00:00:00 2001
3604df
From: Ravishankar N <ravishankar@redhat.com>
3604df
Date: Fri, 23 Sep 2016 15:16:46 +0530
3604df
Subject: [PATCH 88/94] afr: Modifications to afr events
3604df
3604df
Patch in master: http://review.gluster.org/15550
3604df
Patch in release-3.9: http://review.gluster.org/15565
3604df
3604df
Modified afr event message to add a 'type' key as detailed in the BZ.
3604df
Also added events for data and metadata split-brain.
3604df
3604df
Change-Id: I8156674b4b6a501499fc10fd68e05115fdaef3e4
3604df
BUG: 1378300
3604df
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
3604df
Reviewed-on: https://code.engineering.redhat.com/gerrit/85605
3604df
---
3604df
 xlators/cluster/afr/src/afr-self-heal-common.c   |    2 +-
3604df
 xlators/cluster/afr/src/afr-self-heal-data.c     |    6 +++++-
3604df
 xlators/cluster/afr/src/afr-self-heal-entry.c    |    6 ++----
3604df
 xlators/cluster/afr/src/afr-self-heal-metadata.c |    4 ++++
3604df
 xlators/cluster/afr/src/afr-self-heal-name.c     |    4 ++--
3604df
 5 files changed, 14 insertions(+), 8 deletions(-)
3604df
3604df
diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c
3604df
index d7ffb35..8d73a80 100644
3604df
--- a/xlators/cluster/afr/src/afr-self-heal-common.c
3604df
+++ b/xlators/cluster/afr/src/afr-self-heal-common.c
3604df
@@ -1655,7 +1655,7 @@ afr_selfheal_unlocked_inspect (call_frame_t *frame, xlator_t *this,
3604df
 				priv->children[i]->name,
3604df
 				uuid_utoa (replies[i].poststat.ia_gfid));
3604df
                         gf_event (EVENT_AFR_SPLIT_BRAIN, "subvol=%s;"
3604df
-                                "msg=file type mismatch;gfid=%s;"
3604df
+                                "type=file;gfid=%s;"
3604df
                                 "ia_type-%d=%s;ia_type-%d=%s",
3604df
                                 this->name,
3604df
                                 uuid_utoa (replies[i].poststat.ia_gfid), first,
3604df
diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c
3604df
index 4becfb8..fbbbd19 100644
3604df
--- a/xlators/cluster/afr/src/afr-self-heal-data.c
3604df
+++ b/xlators/cluster/afr/src/afr-self-heal-data.c
3604df
@@ -14,6 +14,7 @@
3604df
 #include "byte-order.h"
3604df
 #include "protocol-common.h"
3604df
 #include "afr-messages.h"
3604df
+#include "events.h"
3604df
 
3604df
 enum {
3604df
 	AFR_SELFHEAL_DATA_FULL = 0,
3604df
@@ -597,8 +598,11 @@ __afr_selfheal_data_finalize_source (call_frame_t *frame, xlator_t *this,
3604df
                                                             healed_sinks,
3604df
                                                             locked_on, replies,
3604df
                                                           AFR_DATA_TRANSACTION);
3604df
-                if (source < 0)
3604df
+                if (source < 0) {
3604df
+                        gf_event (EVENT_AFR_SPLIT_BRAIN, "subvol=%s;type=data;"
3604df
+                                 "file=%s", this->name, uuid_utoa(inode->gfid));
3604df
                         return -EIO;
3604df
+                }
3604df
                 return source;
3604df
 	}
3604df
 
3604df
diff --git a/xlators/cluster/afr/src/afr-self-heal-entry.c b/xlators/cluster/afr/src/afr-self-heal-entry.c
3604df
index bf55ede..fb904f3 100644
3604df
--- a/xlators/cluster/afr/src/afr-self-heal-entry.c
3604df
+++ b/xlators/cluster/afr/src/afr-self-heal-entry.c
3604df
@@ -249,8 +249,7 @@ afr_selfheal_detect_gfid_and_type_mismatch (xlator_t *this,
3604df
                                 uuid_utoa_r (replies[src_idx].poststat.ia_gfid,
3604df
                                 g2), priv->children[src_idx]->name);
3604df
                         gf_event (EVENT_AFR_SPLIT_BRAIN,
3604df
-                                 "subvol=%s;msg=gfid mismatch. Skipping "
3604df
-                                 "conservative merge.;file=<gfid:%s>/%s>;count=2;"
3604df
+                                 "subvol=%s;type=gfid;file=<gfid:%s>/%s>;count=2;"
3604df
                                  "child-%d=%s;gfid-%d=%s;child-%d=%s;gfid-%d=%s",
3604df
                                  this->name, uuid_utoa (pargfid), bname, i,
3604df
                                  priv->children[i]->name, i,
3604df
@@ -272,8 +271,7 @@ afr_selfheal_detect_gfid_and_type_mismatch (xlator_t *this,
3604df
                        gf_inode_type_to_str (replies[src_idx].poststat.ia_type),
3604df
                                 priv->children[src_idx]->name);
3604df
                         gf_event (EVENT_AFR_SPLIT_BRAIN,
3604df
-                                 "subvol=%s;msg=file type mismatch. Skipping "
3604df
-                                 "conservative merge;file=<gfid:%s>/%s>;count=2;"
3604df
+                                 "subvol=%s;type=file;file=<gfid:%s>/%s>;count=2;"
3604df
                                  "child-%d=%s;type-%d=%s;child-%d=%s;type-%d=%s",
3604df
                                  this->name, uuid_utoa (pargfid), bname, i,
3604df
                                  priv->children[i]->name, i,
3604df
diff --git a/xlators/cluster/afr/src/afr-self-heal-metadata.c b/xlators/cluster/afr/src/afr-self-heal-metadata.c
3604df
index 85aaca7..9dfe4a1 100644
3604df
--- a/xlators/cluster/afr/src/afr-self-heal-metadata.c
3604df
+++ b/xlators/cluster/afr/src/afr-self-heal-metadata.c
3604df
@@ -13,6 +13,7 @@
3604df
 #include "afr-self-heal.h"
3604df
 #include "byte-order.h"
3604df
 #include "protocol-common.h"
3604df
+#include "events.h"
3604df
 
3604df
 #define AFR_HEAL_ATTR (GF_SET_ATTR_UID|GF_SET_ATTR_GID|GF_SET_ATTR_MODE)
3604df
 
3604df
@@ -241,6 +242,9 @@ __afr_selfheal_metadata_finalize_source (call_frame_t *frame, xlator_t *this,
3604df
 		}
3604df
 
3604df
 		if (!priv->metadata_splitbrain_forced_heal) {
3604df
+                        gf_event (EVENT_AFR_SPLIT_BRAIN, "subvol=%s;"
3604df
+                                  "type=metadata;file=%s",
3604df
+                                  this->name, uuid_utoa(inode->gfid));
3604df
 			return -EIO;
3604df
 		}
3604df
 
3604df
diff --git a/xlators/cluster/afr/src/afr-self-heal-name.c b/xlators/cluster/afr/src/afr-self-heal-name.c
3604df
index acacea8..1d7b0cc 100644
3604df
--- a/xlators/cluster/afr/src/afr-self-heal-name.c
3604df
+++ b/xlators/cluster/afr/src/afr-self-heal-name.c
3604df
@@ -306,7 +306,7 @@ afr_selfheal_name_type_mismatch_check (xlator_t *this, struct afr_reply *replies
3604df
                                         gf_inode_type_to_str (inode_type),
3604df
                                         priv->children[type_idx]->name);
3604df
                                 gf_event (EVENT_AFR_SPLIT_BRAIN,
3604df
-                                         "subvol=%s;msg=file type mismatch;"
3604df
+                                         "subvol=%s;type=file;"
3604df
                                          "file=<gfid:%s>/%s;count=2;"
3604df
                                          "child-%d=%s;type-%d=%s;child-%d=%s;"
3604df
                                          "type-%d=%s", this->name,
3604df
@@ -368,7 +368,7 @@ afr_selfheal_name_gfid_mismatch_check (xlator_t *this, struct afr_reply *replies
3604df
 					uuid_utoa_r (gfid, g2),
3604df
 					priv->children[gfid_idx_iter]->name);
3604df
                                 gf_event (EVENT_AFR_SPLIT_BRAIN,
3604df
-                                        "subvol=%s;msg=gfid mismatch;"
3604df
+                                        "subvol=%s;type=gfid;"
3604df
                                         "file=<gfid:%s>/%s;count=2;"
3604df
                                         "child-%d=%s;gfid-%d=%s;child-%d=%s;"
3604df
                                         "gfid-%d=%s", this->name,
3604df
-- 
3604df
1.7.1
3604df