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
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