From 6f7ac2dcab02a0babf4c18e6fe1d1697943bddfc Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Tue, 11 Mar 2003 07:23:43 +0000 Subject: Note about using Valgrind with tdbs. (This used to be commit 36c6f67d4af50d8fc4c8bd54486df315861d55c2) --- source3/tdb/tdb.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source3/tdb') diff --git a/source3/tdb/tdb.c b/source3/tdb/tdb.c index 0ec770ed81..ab50f40ef6 100644 --- a/source3/tdb/tdb.c +++ b/source3/tdb/tdb.c @@ -20,6 +20,27 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + + +/* NOTE: If you use tdbs under valgrind, and in particular if you run + * tdbtorture, you may get spurious "uninitialized value" warnings. I + * think this is because valgrind doesn't understand that the mmap'd + * area may be written to by other processes. Memory can, from the + * point of view of the grinded process, spontaneously become + * initialized. + * + * I can think of a few solutions. [mbp 20030311] + * + * 1 - Write suppressions for Valgrind so that it doesn't complain + * about this. Probably the most reasonable but people need to + * remember to use them. + * + * 2 - Use IO not mmap when running under valgrind. Not so nice. + * + * 3 - Use the special valgrind macros to mark memory as valid at the + * right time. Probably too hard -- the process just doesn't know. + */ + #ifdef STANDALONE #if HAVE_CONFIG_H #include -- cgit