diff options
author | Joseph Fernandes <josferna@redhat.com> | 2015-11-03 12:08:16 +0530 |
---|---|---|
committer | Dan Lambright <dlambrig@redhat.com> | 2015-11-06 17:14:03 -0800 |
commit | bbaf4cdb42dfeee4d342ff4096a4985b68c74e05 (patch) | |
tree | 9a52c4eeafe40b4d3dc1b2dc28c053a7f0d46af5 | |
parent | 546bf89c0ca325382a1f819013ee7a1462a8effd (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>
-rw-r--r-- | libglusterfs/src/gfdb/gfdb_data_store.c | 3 | ||||
-rw-r--r-- | libglusterfs/src/gfdb/gfdb_sqlite3.c | 3 | ||||
-rw-r--r-- | libglusterfs/src/gfdb/gfdb_sqlite3_helper.c | 5 |
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; |