tdb2: log a message on allocation failure in tdb_check()
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 1 Mar 2011 12:49:20 +0000 (23:19 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Tue, 1 Mar 2011 12:49:20 +0000 (23:19 +1030)
ccan/tdb2/check.c

index df61184f60822fd0dac8af95a16897f28fb3a772..afb682f5e74c8869f77a12ca8436f797b5413ff2 100644 (file)
@@ -603,8 +603,13 @@ static bool check_linear(struct tdb_context *tdb,
                        }
                        /* This record should be in free lists. */
                        if (frec_ftable(&rec.f) != TDB_FTABLE_NONE
                        }
                        /* This record should be in free lists. */
                        if (frec_ftable(&rec.f) != TDB_FTABLE_NONE
-                           && !append(fr, num_free, off))
+                           && !append(fr, num_free, off)) {
+                               tdb_logerr(tdb, TDB_ERR_OOM,
+                                          TDB_DEBUG_ERROR,
+                                          "tdb_check: tracking %zu'th"
+                                          " free record.", *num_free);
                                return false;
                                return false;
+                       }
                } else if (rec_magic(&rec.u) == TDB_USED_MAGIC
                           || rec_magic(&rec.u) == TDB_CHAIN_MAGIC
                           || rec_magic(&rec.u) == TDB_HTABLE_MAGIC
                } else if (rec_magic(&rec.u) == TDB_USED_MAGIC
                           || rec_magic(&rec.u) == TDB_CHAIN_MAGIC
                           || rec_magic(&rec.u) == TDB_HTABLE_MAGIC
@@ -612,8 +617,13 @@ static bool check_linear(struct tdb_context *tdb,
                        uint64_t klen, dlen, extra;
 
                        /* This record is used! */
                        uint64_t klen, dlen, extra;
 
                        /* This record is used! */
-                       if (!append(used, num_used, off))
+                       if (!append(used, num_used, off)) {
+                               tdb_logerr(tdb, TDB_ERR_OOM,
+                                          TDB_DEBUG_ERROR,
+                                          "tdb_check: tracking %zu'th"
+                                          " used record.", *num_used);
                                return false;
                                return false;
+                       }
 
                        klen = rec_key_length(&rec.u);
                        dlen = rec_data_length(&rec.u);
 
                        klen = rec_key_length(&rec.u);
                        dlen = rec_data_length(&rec.u);