summaryrefslogtreecommitdiffstats
path: root/ctdb
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2014-02-15 18:06:09 +0100
committerAmitay Isaacs <amitay@gmail.com>2014-03-06 11:31:15 +1100
commitf3483de240987f05cc20f747ac467c8ed81bb03e (patch)
tree4d0f109220c2bd30351a83bb17ba102cf6937c29 /ctdb
parent72ea9759930bd29b59c0f831d2cb2f4f1e2e643d (diff)
downloadsamba-f3483de240987f05cc20f747ac467c8ed81bb03e.tar.gz
samba-f3483de240987f05cc20f747ac467c8ed81bb03e.tar.xz
samba-f3483de240987f05cc20f747ac467c8ed81bb03e.zip
ctdb-vacuum: catch and log errors to traverse the delete list in ctdb_process_delete_list()
Signed-off-by: Michael Adam <obnox@samba.org> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
Diffstat (limited to 'ctdb')
-rw-r--r--ctdb/server/ctdb_vacuum.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/ctdb/server/ctdb_vacuum.c b/ctdb/server/ctdb_vacuum.c
index a491703288f..cee5bef2b13 100644
--- a/ctdb/server/ctdb_vacuum.c
+++ b/ctdb/server/ctdb_vacuum.c
@@ -907,8 +907,12 @@ static int ctdb_process_delete_list(struct ctdb_db_context *ctdb_db,
* records' RSNs in the database, to ensure we (as dmaster)
* keep the highest RSN of the records in the cluster.
*/
- trbt_traversearray32(vdata->delete_list, 1,
- delete_marshall_traverse_first, recs);
+ ret = trbt_traversearray32(vdata->delete_list, 1,
+ delete_marshall_traverse_first, recs);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR, (__location__ " Error traversing the "
+ "delete list for first marshalling.\n"));
+ }
indata.dsize = talloc_get_size(recs->records);
indata.dptr = (void *)recs->records;
@@ -1005,8 +1009,12 @@ static int ctdb_process_delete_list(struct ctdb_db_context *ctdb_db,
}
recs->records->db_id = ctdb_db->db_id;
- trbt_traversearray32(vdata->delete_list, 1,
- delete_marshall_traverse, recs);
+ ret = trbt_traversearray32(vdata->delete_list, 1,
+ delete_marshall_traverse, recs);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR, (__location__ " Error traversing the "
+ "delete list for second marshalling.\n"));
+ }
indata.dsize = talloc_get_size(recs->records);
indata.dptr = (void *)recs->records;
@@ -1087,8 +1095,12 @@ static int ctdb_process_delete_list(struct ctdb_db_context *ctdb_db,
* active remote nodes.
*/
- trbt_traversearray32(vdata->delete_list, 1,
- delete_record_traverse, vdata);
+ ret = trbt_traversearray32(vdata->delete_list, 1,
+ delete_record_traverse, vdata);
+ if (ret != 0) {
+ DEBUG(DEBUG_ERR, (__location__ " Error traversing the "
+ "delete list for deletion.\n"));
+ }
success: