Encountered this once when attempting to merge a patch in the ReadingLists extension repo. It's not blocking work but I thought I'd err on the side of filing it.
```counterexample,lines=15
15:16:43 Started by user anonymous
15:16:43 Building remotely on integration-slave-jessie-1002 (DebianGlue contintLabsSlave DebianJessie) in workspace /srv/jenkins-workspace/workspace/php55lint
[...]
15:16:43 Fetching upstream changes from git://contint1001.wikimedia.org/mediawiki/extensions/ReadingLists
15:16:43 > git fetch --tags --progress git://contint1001.wikimedia.org/mediawiki/extensions/ReadingLists refs/zuul/master/Ze74f9a112dde44b0a8585ec60a6b5c36 --depth=1
15:16:43 ERROR: Error fetching remote repo 'origin'
15:16:43 hudson.plugins.git.GitException: Failed to fetch from git://contint1001.wikimedia.org/mediawiki/extensions/ReadingLists
15:16:43 at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:812)
15:16:43 at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1079)
15:16:43 at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1110)
15:16:43 at hudson.scm.SCM.checkout(SCM.java:495)
15:16:43 at hudson.model.AbstractProject.checkout(AbstractProject.java:1202)
15:16:43 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
15:16:43 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
15:16:43 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
15:16:43 at hudson.model.Run.execute(Run.java:1724)
15:16:43 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
15:16:43 at hudson.model.ResourceController.execute(ResourceController.java:97)
15:16:43 at hudson.model.Executor.run(Executor.java:429)
15:16:43 Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress git://contint1001.wikimedia.org/mediawiki/extensions/ReadingLists refs/zuul/master/Ze74f9a112dde44b0a8585ec60a6b5c36 --depth=1" returned status code 128:
15:16:43 stdout:
15:16:43 stderr: fatal: remote error: access denied or repository not exported: /mediawiki/extensions/ReadingLists
15:16:43
15:16:43 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1996)
15:16:43 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1715)
15:16:43 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72)
15:16:43 at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:405)
15:16:43 at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:153)
15:16:43 at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:146)
15:16:43 at hudson.remoting.UserRequest.perform(UserRequest.java:207)
15:16:43 at hudson.remoting.UserRequest.perform(UserRequest.java:53)
15:16:43 at hudson.remoting.Request$2.run(Request.java:358)
15:16:43 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
15:16:43 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
15:16:43 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
15:16:43 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
15:16:43 at java.lang.Thread.run(Thread.java:748)
15:16:43 Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to integration-slave-jessie-1002
15:16:43 at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1693)
15:16:43 at hudson.remoting.UserResponse.retrieve(UserRequest.java:310)
15:16:43 at hudson.remoting.Channel.call(Channel.java:908)
15:16:43 at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:146)
15:16:43 at sun.reflect.GeneratedMethodAccessor318.invoke(Unknown Source)
15:16:43 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
15:16:43 at java.lang.reflect.Method.invoke(Method.java:498)
15:16:43 at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:132)
15:16:43 at com.sun.proxy.$Proxy79.execute(Unknown Source)
15:16:43 at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:810)
15:16:43 at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1079)
15:16:43 at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1110)
15:16:43 at hudson.scm.SCM.checkout(SCM.java:495)
15:16:43 at hudson.model.AbstractProject.checkout(AbstractProject.java:1202)
15:16:43 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)
15:16:43 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
15:16:43 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
15:16:43 at hudson.model.Run.execute(Run.java:1724)
15:16:43 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
15:16:43 at hudson.model.ResourceController.execute(ResourceController.java:97)
15:16:43 at hudson.model.Executor.run(Executor.java:429)
15:16:43 ERROR: Error fetching remote repo 'origin'
15:16:43 Finished: FAILURE
```
Some debug notes: T187897#5471466
**Assumption**
@hashar guesses there is a race condition between the git merge doing some file renaming (possibly via a copy + rm) and the git-daemon checking whether the path is a repo. git checks whether there is a `.git` directory and `chdir` to it. If the check happens at the exact time git delete some files, I guess we get the issue. There is no informative message as to why it fails though.