Description: If any string is set to an environment variable USE_VALGRIND,
when running a memory leak checking tool (e.g., valgrind),
it reduces the noise generated by the entry cache and dn cache.

Sample valgrind outputs from the same operations.
1. with USE_VALGRIND
==16525== LEAK SUMMARY:
==16525== definitely lost: 5,102 bytes in 155 blocks
==16525== indirectly lost: 24,655 bytes in 950 blocks
==16525== possibly lost: *13,294* bytes in 433 blocks
==16525== still reachable: 2,209,801 bytes in 17,937 blocks
==16525== suppressed: 0 bytes in 0 blocks
==16525== Reachable blocks (those to which a pointer was found) are not
shown.
==16525== To see them, rerun with: --leak-check=full --show-reachable=yes

2. no USE_VALGRIND
==25738== LEAK SUMMARY:
==25738== definitely lost: 5,102 bytes in 155 blocks
==25738== indirectly lost: 24,655 bytes in 950 blocks
==25738== possibly lost: *23,862,444* bytes in 863,885 blocks
==25738== still reachable: 3,093,988 bytes in 41,603 blocks
==25738== suppressed: 0 bytes in 0 blocks
==25738== Reachable blocks (those to which a pointer was found) are not
shown.
==25738== To see them, rerun with: --leak-check=full --show-reachable=yes

Thanks,
--noriko
From 40ac246939d8e7bf8138c85ea00f30beece094d5 Mon Sep 17 00:00:00 2001
From: Noriko Hosoi <nho...@jiji.usersys.redhat.com>
Date: Wed, 31 Aug 2011 11:09:42 -0700
Subject: [PATCH] Introducing an environment variable USE_VALGRIND to clean up
 the entry cache and dn cache on exit.

---
 ldap/servers/slapd/back-ldbm/dblayer.c |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c 
b/ldap/servers/slapd/back-ldbm/dblayer.c
index b3931a4..b158311 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -2589,16 +2589,19 @@ int dblayer_instance_close(backend *be)
     if (NULL == inst)
         return -1;
 
-#if defined(_USE_VALGRIND)
-    /* When running a memory leak checking tool (e.g., valgrind),
-       it reduces the noise by enabling this code. */
-    LDAPDebug1Arg(LDAP_DEBUG_ANY, "%s: Cleaning up entry cache\n",
-                                  inst->inst_name);
-    cache_clear(&inst->inst_cache, CACHE_TYPE_ENTRY);
-    LDAPDebug1Arg(LDAP_DEBUG_ANY, "%s: Cleaning up dn cache\n",
-                                  inst->inst_name);
-    cache_clear(&inst->inst_dncache, CACHE_TYPE_DN);
-#endif
+    if (getenv("USE_VALGRIND")) {
+        /* 
+         * if any string is set to an environment variable USE_VALGRIND,
+         * when running a memory leak checking tool (e.g., valgrind),
+         * it reduces the noise by enabling this code.
+         */
+        LDAPDebug1Arg(LDAP_DEBUG_ANY, "%s: Cleaning up entry cache\n",
+                                      inst->inst_name);
+        cache_clear(&inst->inst_cache, CACHE_TYPE_ENTRY);
+        LDAPDebug1Arg(LDAP_DEBUG_ANY, "%s: Cleaning up dn cache\n",
+                                      inst->inst_name);
+        cache_clear(&inst->inst_dncache, CACHE_TYPE_DN);
+    }
 
     if (attrcrypt_cleanup_private(inst)) {
         LDAPDebug(LDAP_DEBUG_ANY,
-- 
1.7.4.4

--
389-devel mailing list
389-de...@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-devel

Reply via email to