** Description changed: After upgrading from Ubuntu 10.10 to 11.04 I'm having trouble running meld on some repositories: meld seems to freeze up while bzr runs at 100 % CPU until I kill it. After some digging I find that it's the invocation of "brz check" that seemingly runs into an endless loop: /home/project/autarkse/trunk$ bzr check Checking working tree at '/home/project/autarkse/trunk'. Checking branch at 'file:///home/project/autarkse/branches/V4_0_31_patch/'. Checking branch at 'file:///home/project/autarkse/branches/before-removing-html-files/'. Checking branch at 'file:///home/project/autarkse/branches/before_ui_change/'. Checking branch at 'file:///home/project/autarkse/branches/initial0/'. Checking branch at 'file:///home/project/autarkse/branches/new-ui-branch/'. Checking branch at 'file:///home/project/autarkse/trunk/'. Checking repository at 'file:///home/project/autarkse/'. \ checking commit contents:inventories 0/2 bzr: interrupted However, if I am really patient, bzr will run to an end, and I can start working, but on this particular repository it takes some 3 to 4 minutes with the CPU running hot, and that's every time I open meld on this repository! Apparently, the invocation of "bzr check" was added in revision 24: $ bzr diff -r23..24 meld/vc/bzr.py === modified file 'meld/vc/bzr.py' --- meld/vc/bzr.py 2010-06-24 23:54:27 +0000 +++ meld/vc/bzr.py 2010-09-28 14:29:19 +0000 @@ -57,6 +57,11 @@ return [self.CMD] + self.CMDARGS + ["revert"] def resolved_command(self): return [self.CMD] + self.CMDARGS + ["resolve"] + def valid_repo(self): + if _vc.call([self.CMD, "check"]): + return False + else: + return True def get_working_directory(self, workdir): return self.root ProblemType: Bug DistroRelease: Ubuntu 11.04 Package: meld 1.5.0-0ubuntu1.1 ProcVersionSignature: Ubuntu 2.6.38-14.58-generic 2.6.38.8 Uname: Linux 2.6.38-14-generic x86_64 Architecture: amd64 Date: Wed Apr 25 14:31:29 2012 InstallationMedia: Ubuntu 10.04 LTS "Lucid Lynx" - Release amd64 (20100429) PackageArchitecture: all SourcePackage: meld UpgradeStatus: Upgraded to natty on 2012-04-23 (2 days ago) + + [Impact] + First of all, the bug is limited to Bazaar repositories. Secondly, the degree of impact depends on repository size and complexity: On a large and complex repository the bug can add minutes to meld startup time, during which time meld is completely unresponsive, while even on a small repository, "bzr check" is a lot slower than "bzr status", which impacts unfavorably on meld startup time. + [/Impact] + + [Development Fix] + In the development branch, the bug has been implicitly fixed by fetching a later release from upstream, where the invocation of "bzr check" has been changed to "bzr status". + [/Development Fix] + + [Stable Fix] + A minimal stable fix is to back-port the development fix in isolation. + [/Stable Fix] + + [Test Case] + 1) Navigate to a Bazaar repository, where the invocation of "bzr check" takes more than a few seconds' time. + 2) Open meld on this repository. + Expected behavior: Meld opens quickly with the repository loaded. + Actual behavior: Meld opens with the UI frozen until the "bzr check" command has run to finish. + [/Test Case] + + [Regression Potential] + The regression potential is deemed to be minimal. In essence, the fix means that "bzr status" will be used instead of "bzr check" to implement the method valid_repo. As long as the return value of "bzr status" reflects the basic validity of a Bazaar repository, there should be no regression potential + [/Regression Potential]
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/988296 Title: bzr check awfully slow checking repository in valid_repo To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/meld/+bug/988296/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs