Exception when bzr repository is locked by another process

Bug #528067 reported by Francis Devereux
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
bzr4j
Fix Released
Medium
Patrick Woodworth

Bug Description

If I do something using the bzr command line client that acquires a lock (e.g. "bzr update" or "bzr ci") and bzr4j runs bzr whilst the lock is held then bzr4j throws an exception.

Steps to reproduce:
1) Modify a file
2) From a shell prompt type "bzr ci myfile". This will open a text editor for the commit message - leave the editor open.
3) Switch back to IntelliJ. bzr4j does something (checks the current status?) and throws the exception below.

bzr4j 2.3.0
IntelliJ 9.0.2 EAP 94.273
Java 1.6.0_17
Mac OS X 10.6.2
bzr 2.1.0 (also happened with 2.0.2)
bzr-xmloutput 0.8.6 (also happened with 0.8.4)

Thanks for your work on bzr4j :-)

Francis

sax fatal: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
 at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
 at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
 at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
 at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
 at javax.xml.parsers.SAXParser.parse(SAXParser.java:198)
 at org.emergent.bzr4j.core.cli.BzrXmlResult$1.run(BzrXmlResult.java:66)
 at java.lang.Thread.run(Thread.java:637)

org.emergent.bzr4j.core.cli.BzrExecException: Exit value: 3 ; Working dir: "/Users/francis/Code/Bright/asset-bank/svn-trunk"
--- STDERR ---
<?xml version="1.0" encoding="UTF-8"?><error><class>LockContention</class><dict><key>msg</key><value>[Errno 35] Resource temporarily unavailable</value><key>lock</key><value>/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate</value></dict><message>Could not acquire lock "/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate": (35, 'Resource temporarily unavailable')</message></error>/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/bzrlib/lock.py:163: UserWarning: lock on <open file u'/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate', mode 'rb' at 0x101fb9828> not released
  warn("lock on %r not released" % self.f)

---- ARGS ----
/opt/local/bin/bzr
xmlls
--no-aliases
--ignored
--------------
 at org.emergent.bzr4j.core.cli.BzrAbstractResult.validate(BzrAbstractResult.java:135)
 at org.emergent.bzr4j.core.cli.BzrAbstractExec.exec(BzrAbstractExec.java:175)
 at org.emergent.bzr4j.intellij.command.BzrIdeaExec.exec(BzrIdeaExec.java:76)
 at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:19)
 at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:126)
 at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:38)
 at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:14)
 at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.collectIgnored(BzrChangeProvider.java:179)
 at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.process(BzrChangeProvider.java:133)
 at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.getChanges(BzrChangeProvider.java:88)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:395)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:318)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$600(ChangeListManagerImpl.java:68)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.execute(ChangeListManagerImpl.java:230)
 at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:184)
 at com.intellij.lifecycle.SlowlyClosingAlarm$MyWrapper.run(SlowlyClosingAlarm.java:234)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
 at java.util.concurrent.FutureTask.run(FutureTask.java:138)
 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 at java.lang.Thread.run(Thread.java:637)

org.xml.sax.SAXParseException: Premature end of file.
 at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
 at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
 at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
 at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
 at javax.xml.parsers.SAXParser.parse(SAXParser.java:198)
 at org.emergent.bzr4j.core.cli.BzrXmlResult$1.run(BzrXmlResult.java:66)
 at java.lang.Thread.run(Thread.java:637)

org.emergent.bzr4j.core.cli.BzrExecException: Exit value: 3 ; Working dir: "/Users/francis/Code/Bright/asset-bank/svn-trunk"
--- STDERR ---
<?xml version="1.0" encoding="UTF-8"?><error><class>LockContention</class><dict><key>msg</key><value>[Errno 35] Resource temporarily unavailable</value><key>lock</key><value>/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate</value></dict><message>Could not acquire lock "/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate": (35, 'Resource temporarily unavailable')</message></error>/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/bzrlib/lock.py:163: UserWarning: lock on <open file u'/Users/francis/Code/Bright/asset-bank/svn-trunk/.bzr/checkout/dirstate', mode 'rb' at 0x101fb88b0> not released
  warn("lock on %r not released" % self.f)

---- ARGS ----
/opt/local/bin/bzr
xmlstatus
--no-aliases
--------------
 at org.emergent.bzr4j.core.cli.BzrAbstractResult.validate(BzrAbstractResult.java:135)
 at org.emergent.bzr4j.core.cli.BzrAbstractExec.exec(BzrAbstractExec.java:175)
 at org.emergent.bzr4j.intellij.command.BzrIdeaExec.exec(BzrIdeaExec.java:76)
 at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:19)
 at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:126)
 at org.emergent.bzr4j.intellij.command.ShellCommandService.execute(ShellCommandService.java:38)
 at org.emergent.bzr4j.core.cli.BzrExecService.execute(BzrExecService.java:14)
 at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.collectChanges(BzrChangeProvider.java:203)
 at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.process(BzrChangeProvider.java:152)
 at org.emergent.bzr4j.intellij.provider.BzrChangeProvider.getChanges(BzrChangeProvider.java:88)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:395)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.a(ChangeListManagerImpl.java:318)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl.access$600(ChangeListManagerImpl.java:68)
 at com.intellij.openapi.vcs.changes.ChangeListManagerImpl$ActualUpdater.execute(ChangeListManagerImpl.java:230)
 at com.intellij.openapi.vcs.changes.UpdateRequestsQueue$MyRunnable.run(UpdateRequestsQueue.java:184)
 at com.intellij.lifecycle.SlowlyClosingAlarm$MyWrapper.run(SlowlyClosingAlarm.java:234)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
 at java.util.concurrent.FutureTask.run(FutureTask.java:138)
 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
 at java.lang.Thread.run(Thread.java:637)

Changed in bzr4j:
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Patrick Woodworth (sixseve)
Changed in bzr4j:
milestone: none → release-2.3.1
status: In Progress → Fix Committed
Changed in bzr4j:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.