[PATCH 4 of 4 STABLE] lock: show about possibility of lock corruption for empty locker

Yuya Nishihara yuya at tcha.org
Mon May 1 02:43:54 UTC 2017


On Mon, 01 May 2017 02:07:56 +0900, FUJIWARA Katsunori wrote:
> At Sun, 30 Apr 2017 22:13:57 +0900,
> Yuya Nishihara wrote:
> > On Sat, 29 Apr 2017 17:38:10 +0900, FUJIWARA Katsunori wrote:
> > > # HG changeset patch
> > > # User FUJIWARA Katsunori <foozy at lares.dti.ne.jp>
> > > # Date 1493454424 -32400
> > > #      Sat Apr 29 17:27:04 2017 +0900
> > > # Branch stable
> > > # Node ID 650d9f6bf1e7c1f6dee9d82616af2a56aaf56a2e
> > > # Parent  b64713f57a22301b6f481cd8e401542f46356c94
> > > lock: show about possibility of lock corruption for empty locker
> > 
> > The change looks good to me.
> > 
> > > --- a/mercurial/lock.py
> > > +++ b/mercurial/lock.py
> > > @@ -161,7 +161,8 @@ class lock(object):
> > >          for new-style locks.
> > >          """
> > >          try:
> > > -            return self.vfs.readlock(self.f)
> > > +            # normalize white space by strip() to detect corruption easily
> > > +            return self.vfs.readlock(self.f).strip()
> > 
> > I'm not sure if stripping whitespace makes sense. Do we write '\n' to a
> > lockfile on Windows?
> 
> I apply strip() on locker, because we can't assume that corrupted file
> always causes empty string. It might consist of white space, and
> showing such string as locker is meaningless for users.

That's the problem in ui layer. Maybe we can show the locker with quotes?

  lock held by '%s'

> > I would simply say "lock held by (unknown)" since I don't think a corrupted
> > lock file is more likely to be empty.
> 
> Are you OK for a hint message itself like below for an empty lock
> file, because an empty lock file is more likely to be corrupted,
> especially after timeout ?
> 
>   abort: loock held by unknown
>   (it might be corrupted, use 'hg debuglocks' to check/unlock)

Yeah, showing a hint seems reasonable.


More information about the Mercurial-devel mailing list