LockContention error when pushing (with new tag) to a bound branch

Bug #733350 reported by Brian de Alwis on 2011-03-11
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Bazaar
High
Andrew Bennetts
bzr (Ubuntu)
Undecided
Unassigned
Natty
High
Jelmer Vernooij

Bug Description

I have three branches:

   workspace (for my current work)
   trunk (pushed to from workspace; used for builds)
   backup (actually in a different drive)

trunk is bound to backup. All branches pass 'bzr check'

Since upgrading to 2.3.0, I've been unable to push from workspace to trunk. The problem is still in 2.3.1. The problem is *not* present in 2.2.4.

$ cd workspace
$ bzr --no-plugins push ../trunk
Unable to obtain lock file:///private/tmp/tests/backup/ held by Brian de Alwis <email address hidden>
at chiclet.local [process #10732], acquired 0 seconds ago.
Will continue to try until 10:51:19, unless you press Ctrl-C.
See "bzr help break-lock" for more.
bzr: ERROR: Could not acquire lock "(local)": file:///private/tmp/tests/backup/

I'll attach the bzr.log with -Dlock.

Unfortunately it seems to be something specific to this branch (or set of branches). I can't reproduce this with a synthetic example.

From trunk:

$ bzr info -v
Repository checkout (format: 2a)
Location:
  repository checkout root: .
        checkout of branch: /private/tmp/tests/backup
         shared repository: /private/tmp/tests

Related branches:
    push branch: /Users/bsd/Manumitting/Projects/Capiche/dev/trunk
  parent branch: /private/Users/bsd/Manumitting/Projects/Capiche/dev/trunk

Format:
       control: Meta directory format 1
  working tree: Working tree format 6
        branch: Branch format 7
    repository: Repository format 2a - rich roots, group compression and chk inventories

In the working tree:
      1762 unchanged
         0 modified
         0 added
         0 removed
         0 renamed
         0 unknown
         0 ignored
       554 versioned subdirectories

Branch history:
       910 revisions
       552 days old
   first revision: Fri 2009-09-04 19:13:48 -0400
  latest revision: Thu 2011-03-03 17:09:56 -0500

Repository:
       960 revisions

Related branches

Brian de Alwis (slyguy) wrote :
Brian de Alwis (slyguy) wrote :

If I've used bisect correctly, the bug appears to have been introduced in the following change:

On revision 5050.53.1 (<email address hidden>):
Tags.merge_to now updates the master branch as well, if any.

Brian de Alwis (slyguy) wrote :

Here's a synthetic example demonstrating the problem:

[/tmp/ex]$ bzr init a b c
bzr: ERROR: extra argument to command init: b

[/tmp/ex]$ bzr init a
Created a standalone tree (format: 2a)

[/tmp/ex]$ bzr init b
Created a standalone tree (format: 2a)

[/tmp/ex]$ bzr init c
Created a standalone tree (format: 2a)

[/tmp/ex]$ cd b

[/tmp/ex/b]$ bzr bind ../a

[/tmp/ex/b]$ cd ../c

[/tmp/ex/c]$ :>foo; bzr add; bzr commit -m 'Commit #1'
adding foo
Committing to: /private/tmp/ex/c/
added foo
Committed revision 1.

[/tmp/ex/c]$ bzr tag tag1
Created tag tag1.

[/tmp/ex/c]$ bzr push ../b
Unable to obtain lock file:///private/tmp/ex/a/ held by Brian de Alwis <email address hidden>
at chiclet.local [process #12112], acquired 0 seconds ago.
Will continue to try until 11:41:14, unless you press Ctrl-C.
See "bzr help break-lock" for more.
^Cbzr: interrupted

Brian de Alwis (slyguy) wrote :

mgz pointed out on irc that the RelatedBranches section of 'bzr info -v' looked a bit fishy. This was some extraneous information in the branch.conf from when I branched the original branches. Removing the push and parent branch pointers makes no difference.

Martin Packman (gz) wrote :

Can reproduce the failure here, does seem to be a bug 603395 regression.

Changed in bzr:
importance: Undecided → Medium
status: New → Confirmed
Andrew Bennetts (spiv) wrote :

Given that this is a regression in 2.3.0, I'm going to bump this to High.

Changed in bzr:
assignee: nobody → Andrew Bennetts (spiv)
assignee: Andrew Bennetts (spiv) → nobody
importance: Medium → High
assignee: nobody → Andrew Bennetts (spiv)
Andrew Bennetts (spiv) on 2011-03-14
summary: - LockContention error when pushing to a bound branch
+ LockContention error when pushing (with new tag) to a bound branch
Andrew Bennetts (spiv) on 2011-03-17
Changed in bzr:
status: Confirmed → In Progress
Andrew Bennetts (spiv) wrote :

Fixed in lp:bzr/2.3 r5629. The fix will be included in the 2.3.2 release.

Changed in bzr:
milestone: none → 2.3.2
status: In Progress → Fix Released
Brian de Alwis (slyguy) wrote :

Has Andrew's fix been pulled into the mainline? I still see this error in bzr 2.4b1:

$ bzr push
/usr/pkg/lib/python2.6/site-packages/bzrlib/plugins/git/__init__.py:142: DeprecationWarning: Modifying dwim_revspecs was deprecated in version 2.4.0.
  dwim_revspecs.append(RevisionSpec_git)
ControlDirFormat.register_format() has been removed in Bazaar 2.4. Please upgrade your plugins.
Using saved push location: /Users/bsd/Manumitting/Projects/Capiche/dev/trunk/
Unable to obtain lock file:///Users/bsd/Manumitting/Projects/Capiche/repo/trunk/ held by Brian de Alwis <email address hidden>
at chiclet.local [process #54749], acquired 0 seconds ago.
Will continue to try until 07:50:15, unless you press Ctrl-C.
See "bzr help break-lock" for more.
^Cbzr: interrupted

Andrew Bennetts (spiv) wrote :

It is in mainline, but it landed there a few revs after 2.4b1 was made. It'll be in 2.4b2.

Sorry, I meant to check that before I submitted. Thank you!

Brian.

On 2011-03-31, at 9:10 PM, Andrew Bennetts <email address hidden> wrote:

> It is in mainline, but it landed there a few revs after 2.4b1 was made.
> It'll be in 2.4b2.
>
> --
> You received this bug notification because you are a direct subscriber
> of the bug.
> https://bugs.launchpad.net/bugs/733350
>
> Title:
> LockContention error when pushing (with new tag) to a bound branch
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/bzr/+bug/733350/+subscribe

Jelmer Vernooij (jelmer) on 2011-06-08
Changed in bzr (Ubuntu):
status: New → Fix Released
Jelmer Vernooij (jelmer) on 2011-06-09
Changed in bzr (Ubuntu Natty):
status: New → In Progress
Jelmer Vernooij (jelmer) on 2011-06-10
Changed in bzr (Ubuntu Natty):
assignee: nobody → Jelmer Vernooij (jelmer)
importance: Undecided → High

Accepted bzr into natty-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in bzr (Ubuntu Natty):
status: In Progress → Fix Committed
tags: added: verification-needed
Clint Byrum (clint-fewbar) wrote :

Hello Brian, or anyone else affected,

Accepted bzr into natty-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Jelmer Vernooij (jelmer) wrote :

Verified by running the bzr testsuite from the package in a clean natty install.

tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package bzr - 2.3.4-0ubuntu1

---------------
bzr (2.3.4-0ubuntu1) natty-proposed; urgency=low

  * New upstream release.
   + Fix bzr version number in deprecation warnings. LP: #794960
   + Prevent write attemps on remote branch during "bzr up". LP: #786980
   + Fix conflict handling when two trees involved in a merge have different
     root ids. LP: #805809

bzr (2.3.3-0ubuntu1) natty-proposed; urgency=low

  * New upstream release.
   + Fixes deprecation warning on newer versions of Python. LP: #760435
   + Stops 'bzr push' from copying entire repository if a .bzr directory is
     present without a branch. LP: #465517
   + Fixes undefined local variable error when waiting for lock. LP: #733136
   + Fixes lock contention issues pushing to a bound branch. LP: #733350
   + Transfers less data creating a new stacked branch. LP: #737234
   + Several fixes to the test suite, making it more robust. LP: #654733,
      LP: #751824
   + 'bzr merge --pull --preview' actually shows a preview rather than
     actually merging. LP: #760152
   + bzr smart server now supports UTF-8 user names. LP: #659763
   + user identity can now be set based on username and /etc/mailname, not
     requiring it to be set manually. LP: #616878
   + stacking is now fully transitive. LP: #715000
   + makes in-terminal crash report of plugins much shorter. LP: #716389
 -- Jelmer Vernooij <email address hidden> Thu, 14 Jul 2011 21:12:58 +0200

Changed in bzr (Ubuntu Natty):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments