On Thu, Oct 19, 2017 at 12:26:18PM -0700, Brandon Williams wrote: > One alternative to turning off threading would be to employ proper > locking (like I failed to do) by wrapping the call the > 'add_to_alternates_memory()' in calls to grep_read_lock/unlock: > > + grep_read_lock(); > add_to_alternates_memory(submodule.objectdir); > + grep_read_unlock(); > > That way adding the submodule to the object database won't happen at the > same time another thread is trying to read from the object store. Yeah, I think that is the right approach. Many of Git's APIs aren't thread-safe, so we need a big mutex around "I am doing anything except actually looking at the already-read blob contents". We just missed this spot. -Peff