summaryrefslogtreecommitdiffstats
path: root/libglusterfs
diff options
context:
space:
mode:
authorJoseph Fernandes <josferna@redhat.com>2015-11-03 12:08:16 +0530
committerDan Lambright <dlambrig@redhat.com>2015-11-06 17:14:03 -0800
commitbbaf4cdb42dfeee4d342ff4096a4985b68c74e05 (patch)
tree9a52c4eeafe40b4d3dc1b2dc28c053a7f0d46af5 /libglusterfs
parent546bf89c0ca325382a1f819013ee7a1462a8effd (diff)
tier/ctr: Ignore CTR Lookup heal insert errors
CTR doesnt read from the DB, so to make sure that file records are created it does a heal during a lookup. It remembers the decision in the inode context cache and retrys periodically. When the volume is restarted it looses all the inode cache from the previous time and CTR lookup heals tries the heal again, but this time it finds that the records are already there from sql and logs this error, and remembers this until the volume is restarted or inode is flushed out of inode cache of the brick. Solution: the log levels should be reduced to trace for this case and customers need not see this. Change-Id: I67b568fb6904f8597e2c6d32894a247c4f500b94 BUG: 1277352 Signed-off-by: Joseph Fernandes <josferna@redhat.com> Reviewed-on: http://review.gluster.org/12491 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Dan Lambright <dlambrig@redhat.com> Tested-by: Dan Lambright <dlambrig@redhat.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r--libglusterfs/src/gfdb/gfdb_data_store.c3
-rw-r--r--libglusterfs/src/gfdb/gfdb_sqlite3.c3
-rw-r--r--libglusterfs/src/gfdb/gfdb_sqlite3_helper.c5
3 files changed, 8 insertions, 3 deletions
diff --git a/libglusterfs/src/gfdb/gfdb_data_store.c b/libglusterfs/src/gfdb/gfdb_data_store.c
index a3b680f3e7e..ffa3fb67905 100644
--- a/libglusterfs/src/gfdb/gfdb_data_store.c
+++ b/libglusterfs/src/gfdb/gfdb_data_store.c
@@ -382,7 +382,8 @@ insert_record (gfdb_conn_node_t *_conn_node,
ret = db_operations_t->insert_record_op (gf_db_connection,
gfdb_db_record);
if (ret) {
- gf_msg (GFDB_DATA_STORE, GF_LOG_ERROR, 0,
+ gf_msg (GFDB_DATA_STORE, _gfdb_log_level (GF_LOG_ERROR,
+ gfdb_db_record->ignore_errors), 0,
LG_MSG_INSERT_OR_UPDATE_FAILED, "Insert/Update"
" operation failed");
}
diff --git a/libglusterfs/src/gfdb/gfdb_sqlite3.c b/libglusterfs/src/gfdb/gfdb_sqlite3.c
index 84ee9c32f08..2c5dc4296ad 100644
--- a/libglusterfs/src/gfdb/gfdb_sqlite3.c
+++ b/libglusterfs/src/gfdb/gfdb_sqlite3.c
@@ -538,7 +538,8 @@ int gf_sqlite3_insert(void *db_conn, gfdb_db_record_t *gfdb_db_record)
case GFDB_FOP_WIND:
ret = gf_sql_insert_wind (sql_conn, gfdb_db_record);
if (ret) {
- gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0,
+ gf_msg (GFDB_STR_SQLITE3, _gfdb_log_level (GF_LOG_ERROR,
+ gfdb_db_record->ignore_errors), 0,
LG_MSG_INSERT_FAILED, "Failed wind insert");
goto out;
}
diff --git a/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c b/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c
index 0e9ccdbb380..4dd3734231e 100644
--- a/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c
+++ b/libglusterfs/src/gfdb/gfdb_sqlite3_helper.c
@@ -795,7 +795,10 @@ gf_sql_insert_wind (gf_sql_connection_t *sql_conn,
gfdb_db_record->link_consistency,
gfdb_db_record->ignore_errors);
if (ret) {
- gf_msg (GFDB_STR_SQLITE3, GF_LOG_ERROR, 0,
+ gf_msg (GFDB_STR_SQLITE3,
+ _gfdb_log_level (GF_LOG_ERROR,
+ gfdb_db_record->ignore_errors),
+ 0,
LG_MSG_INSERT_FAILED, "Failed "
"inserting link in DB");
goto out;