It's all about the answers!

Ask a question

Build Result UUID is not being set with Request


Sean G Wilbur (87222421) | asked Apr 07 '10, 1:28 p.m.
JAZZ DEVELOPER
I have read through Peter's articles and I am trying to add the accept changes and some advanced contributions but I am stuck with all commands failing that I do not have the UUID.

https://jazz.net/wiki/bin/view/Main/RationalBuildForge/IntegrationWithRTC#Work_with_Build_Forge_specific_p

Says the "buildResultUuid" should be set automatically, but I am having some issues making this work, namely where is this set and where can it be accessed from?

If I do not include buildResultUuid in the BF Environment, I get duplicates of each step on the RTC side and the build completes with a warning that all activities failed to complete. In this case, there is no property generated for buildResultUuid. ( This seems to be a problem behavior, because a full shutdown of both BF/JTS and this will not fail like this, but still not UUID)

I turned on client side tracing for the BF connector but that does not seem to provide any insight, here is what I am seeing output to the console.


Error firing build uuid: c8a1f15c0c4a1000953c9f8a3a903a90
com.buildforge.services.common.api.APIException
at com.buildforge.services.client.api.APIClientConnection.call(APIClientConnection.java:607)
at com.buildforge.services.client.dbo.Build.fireBuild(Build.java:709)
at com.ibm.rational.buildforge.team.service.BuildForgeBuildLoopScheduledTask.startBuildForgeProject(BuildForgeBu
ildLoopScheduledTask.java:184)
at com.ibm.rational.buildforge.team.service.BuildForgeBuildLoopScheduledTask.runTask(BuildForgeBuildLoopSchedule
dTask.java:133)
at com.ibm.team.repository.service.async.AbstractAutoScheduledTask.executeTask(AbstractAutoScheduledTask.java:88
)
at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356
)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(Ex
portProxyServiceRecord.java:56)
at $Proxy235.executeTask(Unknown Source)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java
:118)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)

at java.lang.Thread.run(Thread.java:811)
com.ibm.team.build.common.TeamBuildStateException: Unable to "complete" the build with id "_wl4NokJoEd-kv8Glz5EnNw", bui
ld definition id "workshop.squawk.core.integration.buildforge", label "Squawk Integration (BUILD_30 as bldadmin) for jaz
zy" because it is in the "COMPLETED" state.
at com.ibm.team.build.internal.service.TeamBuildRequestService.createIllegalBuildStateException(TeamBuildRequest
Service.java:1683)
at com.ibm.team.build.internal.service.TeamBuildRequestService.access$12(TeamBuildRequestService.java:1666)
at com.ibm.team.build.internal.service.TeamBuildRequestService$12.run(TeamBuildRequestService.java:785)
at com.ibm.team.build.internal.service.AbstractTeamBuildService.runAsRetryable(AbstractTeamBuildService.java:360
)
at com.ibm.team.build.internal.service.AbstractTeamBuildService.runAsRetryable(AbstractTeamBuildService.java:274
)
at com.ibm.team.build.internal.service.TeamBuildRequestService.makeBuildCompleteWithoutProcess(TeamBuildRequestS
ervice.java:734)
at com.ibm.team.build.internal.service.TeamBuildRequestService.access$20(TeamBuildRequestService.java:730)
at com.ibm.team.build.internal.service.TeamBuildRequestService$13.run(TeamBuildRequestService.java:815)
at com.ibm.team.process.internal.common.advice.runtime.OperationAdviceManager.runOperation(OperationAdviceManage
r.java:1245)
at com.ibm.team.process.internal.common.advice.runtime.OperationAdviceManager.advise(OperationAdviceManager.java
:284)
at com.ibm.team.process.internal.common.util.AbstractProcess.doAdvise(AbstractProcess.java:181)
at com.ibm.team.process.internal.service.ServerProcess.access$1(ServerProcess.java:1)
at com.ibm.team.process.internal.service.ServerProcess$2.run(ServerProcess.java:132)
at com.ibm.team.repository.service.internal.TransactionService$1.run(TransactionService.java:104)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$Transaction.run(RepositoryDatabase.java:466)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$1.run(RepositoryDatabase.java:292)
at com.ibm.team.repository.service.internal.rdb.ConnectionPoolService.withCurrentConnection(ConnectionPoolServic
e.java:331)
at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356
)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(Ex
portProxyServiceRecord.java:56)
at $Proxy22.withCurrentConnection(Unknown Source)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runTransaction(RepositoryDatabase.java:288)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase.runInTransaction(RepositoryDatabase.java:244)

at com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:79)
at com.ibm.team.repository.service.internal.TransactionService.runInTransaction(TransactionService.java:68)
at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356
)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(Ex
portProxyServiceRecord.java:56)
at $Proxy45.runInTransaction(Unknown Source)
at com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:3361)
at com.ibm.team.process.internal.service.ProcessService.runInTransaction(ProcessService.java:3368)
at com.ibm.team.process.internal.service.ServerProcess.adviseAndExecute(ServerProcess.java:130)
at com.ibm.team.build.internal.service.TeamBuildRequestService.makeBuildComplete(TeamBuildRequestService.java:81
0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356
)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(Ex
portProxyServiceRecord.java:56)
at $Proxy210.makeBuildComplete(Unknown Source)
at com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.runTask(BuildForgeEventPollerSche
duledTask.java:316)
at com.ibm.team.repository.service.async.AbstractAutoScheduledTask.executeTask(AbstractAutoScheduledTask.java:88
)
at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356
)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(Ex
portProxyServiceRecord.java:56)
at $Proxy236.executeTask(Unknown Source)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java
:118)
at com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)

at java.lang.Thread.run(Thread.java:811)


If I add it to the BF environment, then the property is present during request build and is set to "default", everything runs properly all activities are completes successfully in terms of the activities, but the steps that use buildResultUuid fail because the value is "default" and not a real UUID.

I've tried a number of different combinations but I can't seem to find a good one so I am open to any suggestions or pointers on what might be going on here or how to proceed ? I have two setups at different versions where neither of them seem to be working properly, so I can't play the spot the difference game.

My first couple questions are:
* Should the buildResultUuid variable be defined in the BF ENV?
* If not in BF, do I need to define buildResultUuid explicitly as a property in RTC?
* When I look at the build definition inside RTC should I see buildResultUuid property?

-Sean

8 answers



permanent link
Peter Birk (501145) | answered Apr 07 '10, 4:33 p.m.
JAZZ DEVELOPER

My first couple questions are:
* Should the buildResultUuid variable be defined in the BF ENV?
* If not in BF, do I need to define buildResultUuid explicitly as a property in RTC?
* When I look at the build definition inside RTC should I see buildResultUuid property?
-Sean


Sean,

First, you need to make sure your Build Forge project has a Project-level Environment set. This is required as this is where the buildResultUuid is updated from. When you query the Projects in the Build Forge build definition, the buildResultUuid property gets set in the Project-level environment at that time. Then, when you submit a build request, the Build Loop scheduled task will update the "Build" environment that's a copy of the "Project" environment, overwriting the "default" value with the correct UUID for that particular build result object. This is only done if the "buildResultUuid " property got set correctly and exists in the Build environment at the time of the build submission. After saving the build definition, you should be able to see the buildResultUuid property in the Build Forge environment associated with the Project that you are running. The value will be "default" when viewed there. It only gets updated with the correct value during a build submission.

If you continue to get "default" in this property and you have setup a Project environment and then queried the Project in the build definition where it sets this up, then you should enable trace on the server-side and recreate the problem. To enable trace, add -Dcom.buildforge.rtc.plugin.debug=true to the server.startup.bat JAVA_OPTS line. Restart RTC and a buildforge_service.log will appear in the startup directory after a build request is submitted.

Let me know if you have any questions...

Regards,
Pete

permanent link
Sean G Wilbur (87222421) | answered Apr 08 '10, 1:53 a.m.
JAZZ DEVELOPER
Pete,

Thanks for the feedback, so I have added the buildResultUuid back to the project environment, and restarted both systems to get rid of the activities not completing issue.

So I have the debug option in the JTS startup bat script, and recreated the problem with the simplest scenario I could, the BF side is a simple project with a simple environment only containing buildResultUuid and a single step that echo's it's value.

The result is still "default" as setup in BF.

Not sure what I am looking for here, so I hope this is usable if I put the whole log inline. (looks like these forums have a size limit, so I put it up here for now)

http://pastebin.com/4ByHMaaU

-Sean

permanent link
Peter Birk (501145) | answered Apr 08 '10, 8:27 a.m.
JAZZ DEVELOPER
Pete,

Thanks for the feedback, so I have added the buildResultUuid back to the project environment, and restarted both systems to get rid of the activities not completing issue.

So I have the debug option in the JTS startup bat script, and recreated the problem with the simplest scenario I could, the BF side is a simple project with a simple environment only containing buildResultUuid and a single step that echo's it's value.

The result is still "default" as setup in BF.

Not sure what I am looking for here, so I hope this is usable if I put the whole log inline. (looks like these forums have a size limit, so I put it up here for now)

http://pastebin.com/4ByHMaaU

-Sean


Sean,

Can you let me know the version of the plugins you have in the jazz/server/buildforgeconnector-update-site/plugins directory? I want to make sure it contains the code to update buildResultUuid in the build loop task.

Thanks.
Pete

permanent link
Sean G Wilbur (87222421) | answered Apr 08 '10, 2:56 p.m.
JAZZ DEVELOPER

Can you let me know the version of the plugins you have in the jazz/server/buildforgeconnector-update-site/plugins directory? I want to make sure it contains the code to update buildResultUuid in the build loop task.


com.ibm.rational.connector.buildforge.server.feature_7.1.1.2020034.jar

-Sean

permanent link
Peter Birk (501145) | answered Apr 08 '10, 3:22 p.m.
JAZZ DEVELOPER

Can you let me know the version of the plugins you have in the jazz/server/buildforgeconnector-update-site/plugins directory? I want to make sure it contains the code to update buildResultUuid in the build loop task.


com.ibm.rational.connector.buildforge.server.feature_7.1.1.2020034.jar

-Sean

Sean,

This is the issue. You must use BF 7.1.1.3 or later for this to work. That's described in the jazz.net article, but I may need to make it more clear. Once you upgrade and use a 7.1.1.3 or later plugin, then it will update for you. The following is directly from the article.

"The scenario documented here is not possible without using the 7.1.1.3 Build Forge plugin (or later). Additionally, to use the continuous integration function in the provided Build Forge adapter, you will need to download the attached server-side connector ( BuildForgeConnectorServer-7.1.1.4-0-0010.zip ) which contains a fix to handle a problem found with this scenario. This fix will appear in the Build Forge 7.1.1.4 plugin. The 7.1.1.3 version (or later) of the plugin sends the buildResultUuid back to Build Forge to use as a parameter in the Ant Tasks. This is what allows the linkage to occur so that the Ant Tasks know what Build Result to publish back into."

Pete

permanent link
Sean G Wilbur (87222421) | answered Apr 09 '10, 12:00 a.m.
JAZZ DEVELOPER
Pete,

Thanks for your patience here, as you can tell I was banging my head against the desk when I saw your post, I will upgrade this machine and try again, but for now I tried out the same steps on a 7.1.1.3 machine that I need for a different client and it is working as expected.

I shouldn't have a problem remembering what release this feature is included on moving forward ;)

Thank you,
Sean

permanent link
Peter Birk (501145) | answered Apr 09 '10, 12:46 a.m.
JAZZ DEVELOPER
Pete,

Thanks for your patience here, as you can tell I was banging my head against the desk when I saw your post, I will upgrade this machine and try again, but for now I tried out the same steps on a 7.1.1.3 machine that I need for a different client and it is working as expected.

I shouldn't have a problem remembering what release this feature is included on moving forward ;)

Thank you,
Sean


Sean,

No problem, glad you've got it working. The best way to figure this stuff out is to try it one way and then the other.

Pete

permanent link
Tom Canova (9111) | answered Mar 08 '11, 5:15 p.m.
We are currently using BuildForge 7.1.1.3 on zLinux, and when RTC 3 calls a job on buildforge, the buildResultUUID is simply set to default. After synchornizing between the RTC build definition and BuildForge, the property shows up in the project environment with a value of default. Do we need to install a patch on the 7.1.1.3 server to get this to work?

Pete,

Thanks for your patience here, as you can tell I was banging my head against the desk when I saw your post, I will upgrade this machine and try again, but for now I tried out the same steps on a 7.1.1.3 machine that I need for a different client and it is working as expected.

I shouldn't have a problem remembering what release this feature is included on moving forward ;)

Thank you,
Sean


Sean,

No problem, glad you've got it working. The best way to figure this stuff out is to try it one way and then the other.

Pete

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.