Hi, I am new to git source and internal development. Recently I've been looking at a problem where issuing "git status" in a corrupted workspace handed over to me by a user, forks several thousand child processes recursively. The symptoms of the corrupted workspace to reproduce this problem are as follows: there needs to be an entry in the index file that looks something like this.... 0 groc 160000 0 0.000000000 Also, there's a subdirectory under the source dir with the name in the index file above (i.e 'groc') that has a partially populated .git sub directory within it, not a .git file with the contents providing a link to the module subdirectory. The "git submodule status" command returns "No submodule mapping found in .gitmodules for path 'groc'" Doing a "git read-tree HEAD" will regenerate the index file and make the problem go away. Basically the line entry above relating to 'groc' goes away as it is not a submodule in the source repo. This problem can be reproduced with all current versions of GIT including 2.4, 2.8 and the latest version v2.10.0-rc1. In looking into the git source code for is_submodule_modified() which forks off the new child process, I see the following lines in submodule.c: git_dir = read_gitfile(buf.buf); if (!git_dir) git_dir = buf.buf; Can anyone explain to me why we are replacing a failed reading of a git file with the original sub directory name? When can we expect a .git directory under a submodule? Thanks, Uma -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html