Random difficulty pushing to repository

Matt Mackall mpm at selenic.com
Thu Sep 29 20:08:42 UTC 2011


On Thu, 2011-09-29 at 14:53 -0500, stevan zivadinovic wrote:
> Yessss... afp is indeed interesting... works OK if we're accessing stuff
> from the office, utterly useless from without. Anyhow, with traceroute:

>   File "/Library/Python/2.6/site-packages/mercurial/revlog.py", line 1141,
> in addgroup
>     ifh = self.opener(self.indexfile, "a+")
>   File "/Library/Python/2.6/site-packages/mercurial/store.py", line 377, in
> __call__
>     return self.opener(self.encode(path), mode, *args, **kw)
>   File "/Library/Python/2.6/site-packages/mercurial/scmutil.py", line 231,
> in __call__
>     util.rename(util.mktempcopy(f), f)
>   File "/Library/Python/2.6/site-packages/mercurial/util.py", line 684, in
> mktempcopy
>     fd, temp = tempfile.mkstemp(prefix='.%s-' % fn, dir=d)
>   File
> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tempfile.py",
> line 293, in mkstemp
>   File
> "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/tempfile.py",
> line 228, in _mkstemp_inner
> KeyboardInterrupt
> interrupted!

Ok, this is looping 10000 times to create a temp file:

    for seq in xrange(TMP_MAX):
        name = names.next()
        file = _os.path.join(dir, pre + name + suf)
	try:
            fd = _os.open(file, flags, 0600)
            _set_cloexec(fd)
            return (fd, _os.path.abspath(file))
        except OSError, e:
            if e.errno == _errno.EEXIST:
                continue # try again                                            
            raise

and apparently retrying because the file it's trying to create already
exists. Which probably means AFP is lying/confused. Putting some 'print'
statements in that loop would probably tell us what's up.

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list