On Wed, 2013-10-16 at 17:36 +0000, Phil Longstaff wrote: > ==23046== Locks held: 3, at addresses 0xFDA2148 0xFE2B020 (and 1 that > can't be shown) > What could cause a lock to have an address that can’t be shown?
Here is a comment from hg_errors.c which explains: /* Given a normal Lock (LockN), convert it to a persistent Lock (LockP). In some cases the LockN could be invalid (if it's been freed), so we enquire, in hg_main.c's admin_locks list, whether it is in fact valid. If allowed_to_be_invalid is True, then it's OK for the LockN to be invalid, in which case Lock_INVALID is returned. In all other cases, we insist that the LockN is a valid lock, and return its corresponding LockP. Why can LockNs sometimes be invalid? Because they are harvested from locksets that are attached to the OldRef info for conflicting threads. By the time we detect a race, the some of the elements of the lockset may have been destroyed by the client, in which case the corresponding Lock structures we maintain will have been freed. So we check that each LockN is a member of the admin_locks double linked list of all Lock structures. That stops us prodding around in potentially freed-up Lock structures. However, it's not quite a proper check: if a new Lock has been reallocated at the same address as one which was previously freed, we'll wind up copying the new one as the basis for the LockP, which is completely bogus because it is unrelated to the previous Lock that lived there. Let's hope that doesn't happen too often. */ ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk _______________________________________________ Valgrind-users mailing list Valgrind-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-users