<< Back to previous view

[QB-1849] Bazaar source control plugin should create Destination Path if it does not exist
Created: 19/Nov/13  Updated: 21/Nov/13

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: 5.0.38
Fix Version/s: 5.1.0

Type: Bug Priority: Major
Reporter: U. Artie Eoff Assigned To: Unassigned
Resolution: Fixed Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown
Environment: Fedora 19; bzr v2.5.1

File Attachments: PNG File Bazaar-repository-settings.png    

 Description   
With the Bazaar source control plugin, the "Destination Path" value may not point to an existing directory initially. The plugin should created the destination path automatically if it does not exist (similar to the git plugin). Currently get the following error:

2013-11-19 11:22:20,199 [pool-1-thread-18274] ERROR com.pmease.quickbuild.DefaultBuildEngine - Error processing build request.
    java.lang.RuntimeException: Error executing grid job
        at com.pmease.quickbuild.grid.GridTaskFuture.get(GridTaskFuture.java:68)
        at com.pmease.quickbuild.grid.GridTaskFuture.get(GridTaskFuture.java:85)
        at com.pmease.quickbuild.DefaultBuildEngine.process(DefaultBuildEngine.java:305)
        at com.pmease.quickbuild.DefaultBuildEngine.access$000(DefaultBuildEngine.java:121)
        at com.pmease.quickbuild.DefaultBuildEngine$2.run(DefaultBuildEngine.java:966)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
    Caused by: com.pmease.quickbuild.QuickbuildException: Cannot run program "bzr" (in directory "/home/quickbuild/quickbuild-5.0.38/workspace/root/wayland/Stable/wayland-pnp/src/glmark2"): error=2, No such file or directory
        at com.pmease.quickbuild.execution.Commandline.execute(Commandline.java:288)
        at com.pmease.quickbuild.execution.Commandline.execute(Commandline.java:205)
        at com.pmease.quickbuild.plugin.scm.helper.ScmCli.run(ScmCli.java:87)
        at com.pmease.quickbuild.plugin.scm.helper.ScmCli.run(ScmCli.java:79)
        at com.pmease.quickbuild.plugin.scm.helper.ScmCli.run(ScmCli.java:71)
        at com.pmease.quickbuild.plugin.scm.bazaar.BazaarCli.getVersion(BazaarCli.java:38)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository.getBzrVersion(BzrRepository.java:318)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.CGLIB$getBzrVersion$2(<generated>)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375$$FastClassByCGLIB$$f101786f.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:269)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.getBzrVersion(<generated>)
        at com.pmease.quickbuild.plugin.scm.bazaar.BazaarCli.logCommand(BazaarCli.java:98)
        at com.pmease.quickbuild.plugin.scm.bazaar.BazaarCli.tip(BazaarCli.java:107)
        at com.pmease.quickbuild.plugin.scm.bazaar.BazaarCli.revision(BazaarCli.java:124)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository.getHeadRevision(BzrRepository.java:118)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.CGLIB$getHeadRevision$14(<generated>)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375$$FastClassByCGLIB$$f101786f.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:269)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.getHeadRevision(<generated>)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository.getHeadRevision(BzrRepository.java:35)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.CGLIB$getHeadRevision$15(<generated>)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375$$FastClassByCGLIB$$f101786f.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:269)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.getHeadRevision(<generated>)
        at com.pmease.quickbuild.repositorysupport.Repository.takeSnapshot(Repository.java:330)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.CGLIB$takeSnapshot$40(<generated>)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375$$FastClassByCGLIB$$f101786f.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
        at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:269)
        at com.pmease.quickbuild.plugin.scm.bazaar.BzrRepository$$EnhancerByCGLIB$$1b832375.takeSnapshot(<generated>)
        at com.pmease.quickbuild.setting.configuration.snapshot.TakeReferencedSnapshots.takeSnapshot(TakeReferencedSnapshots.java:15)
        at com.pmease.quickbuild.model.Configuration.takeSnapshot(Configuration.java:1503)
        at com.pmease.quickbuild.CheckConditionJob.execute(CheckConditionJob.java:37)
        at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:78)
        ... 6 more

 Comments   
Comment by Steve Luo [ 20/Nov/13 02:53 PM ]
Hello,

This issue is not caused by a not-existing path, instead, it is caused by bzr command is not in your bin path. You may specify the full path for your bzr program in the admin page for bzr plugin, or make sure the bzr program is in the path.
Comment by U. Artie Eoff [ 20/Nov/13 02:58 PM ]
Hello Steve,

I'm not entirely sure that's the cause... bzr is in the bin path. If I set the "Destination Path" to this script:

${
util.getFile(configuration.workspaceDir + "/src/" + current.name).mkdirs();
result = "src/" + current.name;
}

...then it works just fine.
Comment by U. Artie Eoff [ 20/Nov/13 03:06 PM ]
Also, to verify 'bzr' is in my path, I created a "Shell/Batch Command" step that runs "bzr help" and that succeeds... assuming this is "equivalent" to what the plugin does.
Comment by Steve Luo [ 20/Nov/13 03:15 PM ]
I doubt this is the issue, as I tested with Debian and Mac without any problem.

Did your checkout step run on the same agent before and after you create the directory?
Comment by U. Artie Eoff [ 20/Nov/13 03:22 PM ]
Hmm...

This is failing on the server when it tries to take an initial snapshot of the repository before it even executes the build request process.
Comment by U. Artie Eoff [ 20/Nov/13 03:29 PM ]
Snapshot of my Bazaar repository settings
Comment by Steve Luo [ 20/Nov/13 04:20 PM ]
Yes, I can now reproduce the issue. Thank you very much.
Generated at Fri May 17 13:22:47 UTC 2024 using JIRA 189.