ldb: Log pack format in user-friendly way
authorTim Beale <timbeale@catalyst.net.nz>
Tue, 30 Jul 2019 04:40:55 +0000 (16:40 +1200)
committerTim Beale <timbeale@catalyst.net.nz>
Mon, 19 Aug 2019 22:04:33 +0000 (10:04 +1200)
The "format 0x26011968" log confused me (and I'm a developer).
We can subtract the base offset from the pack format to get a more
user-friendly number, e.g. v0 (not actually used), v1, v2, etc.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14059

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
lib/ldb/ldb_key_value/ldb_kv_index.c

index eb84a790e004d89f1020ff34e0034de53a9a1764..27454d3f734999f6e1f28c80fb45b335f0f8c0d4 100644 (file)
@@ -3526,6 +3526,18 @@ static int re_index(struct ldb_kv_private *ldb_kv,
        return 0;
 }
 
+/*
+ * Convert the 4-byte pack format version to a number that's slightly
+ * more intelligible to a user e.g. version 0, 1, 2, etc.
+ */
+static uint32_t displayable_pack_version(uint32_t version) {
+       if (version < LDB_PACKING_FORMAT_NODN) {
+               return version; /* unknown - can't convert */
+       }
+
+       return (version - LDB_PACKING_FORMAT_NODN);
+}
+
 static int re_pack(struct ldb_kv_private *ldb_kv,
                   _UNUSED_ struct ldb_val key,
                   struct ldb_val val,
@@ -3572,8 +3584,9 @@ static int re_pack(struct ldb_kv_private *ldb_kv,
         */
        if ((!ctx->normal_record_seen) && (!ldb_dn_is_special(msg->dn))) {
                ldb_debug(ldb, LDB_DEBUG_ALWAYS_LOG,
-                         "Repacking database with format %#010x",
-                         ldb_kv->pack_format_version);
+                         "Repacking database from v%u to v%u format",
+                         displayable_pack_version(ctx->old_version),
+                         displayable_pack_version(ldb_kv->pack_format_version));
                ctx->normal_record_seen = true;
        }