# HG changeset patch # User Mads Kiilerich # Date 2015-05-27 23:15:36 # Node ID d8993baa00dc0e440a8310dbb2691ff1441e5b33 # Parent f9a581561184aa075a0f0d57822fbdc064f762b3 git: avoid OSError when encountering invalid lock file This avoids crashing when repo scanning makes dulwich look at its own pip install directory. diff --git a/kallithea/lib/vcs/backends/git/repository.py b/kallithea/lib/vcs/backends/git/repository.py --- a/kallithea/lib/vcs/backends/git/repository.py +++ b/kallithea/lib/vcs/backends/git/repository.py @@ -12,6 +12,7 @@ import os import re import time +import errno import urllib import urllib2 import logging @@ -690,7 +691,13 @@ class GitRepository(BaseRepository): runs gits update-server-info command in this repo instance """ from dulwich.server import update_server_info - update_server_info(self._repo) + try: + update_server_info(self._repo) + except OSError, e: + if e.errno != errno.ENOENT: + raise + # Workaround for dulwich crashing on for example its own dulwich/tests/data/repos/simple_merge.git/info/refs.lock + log.error('Ignoring error running update-server-info: %s', e) @LazyProperty def workdir(self):