I think I found a bug when I was working on the periodic-boundary patch (submitted earlier today). If I compiled libmesh in debug mode and ran my application, it locked up. I figured out that point_locator() is called (mesh_base.C line 287), it allocated a mutex and then it called a constructor for PointLocatorBase::build() created object. Since PointLocatorBase inherits from ReferenceCountedObject, the increment_constructor_count was called (reference_counter.h, line 167) and it tried to allocated the same mutex there again. Everything works fine in OPT mode, since the body of increment_constructor_count is empty.

Could anyone verify this?

David Andrs