On Fri, 21 Sep 2018 09:19:45 -0700 Junio C Hamano <gitster@xxxxxxxxx> wrote: > Antonio Ospite <ao2@xxxxxx> writes: > > > Protecting the problematic submodules function could work for now, but > > I'd like to have more comments, my proposal is: > > > > diff --git a/builtin/grep.c b/builtin/grep.c > > index 601f801158..52b45de749 100644 > > --- a/builtin/grep.c > > +++ b/builtin/grep.c > > @@ -427,6 +427,11 @@ static int grep_submodule(struct grep_opt *opt, struct repository *superproject, > > if (repo_submodule_init(&submodule, superproject, path)) > > return 0; > > > > + grep_read_lock(); > > + /* > > + * NEEDSWORK: repo_read_gitmodules accesses the object store which is > > + * global, thus it needs to be protected. > > + */ > > repo_read_gitmodules(&submodule); > > > > /* > > @@ -439,7 +444,6 @@ static int grep_submodule(struct grep_opt *opt, struct repository *superproject, > > * store is no longer global and instead is a member of the repository > > * object. > > */ > > - grep_read_lock(); > > add_to_alternates_memory(submodule.objects->objectdir); > > grep_read_unlock(); > > I think this is in line with how the grep codepath protects itself > when doing anything that accesses the object store. > Thanks for the comment. However, after confirming with Stefan Beller, I think we are going to solve the corruption issue by removing this call to repo_read_gitmodules(), which is not strictly necessary: https://public-inbox.org/git/CAGZ79kZaomuE3p1puznM1x+hu-w4O+ZqeGUODBDj=-R3Z1hDzg@xxxxxxxxxxxxxx/ Thanks, Antonio -- Antonio Ospite https://ao2.it https://twitter.com/ao2it A: Because it messes up the order in which people normally read text. See http://en.wikipedia.org/wiki/Posting_style Q: Why is top-posting such a bad thing?