Windows elastic agent exception

Federico Spagnolini September 8, 2011

Hi to all,

following instructions here, here , here , here... with many thanks to all contributors, I was finally able to setup an EC2 windows custom image that is able to setup a nightly build for one of our product using Visual Studio 2008 (a native Windows application).

Being a jira studio user jira and svn/fisheye integration works great so if a svn commit contains a reference to the jira issue bamboo is able to show issues resolved/related the that build but if the plan refers to issues the agent raise an exception receiving the jms build command thus aborting the build process, else the build will proceed as expected.

So the plan is executed only if it does not refer to jira issues/ svn changeset.

I've raised an support call to Atlassian but custom elastic images are not supported so I hope that here I can find some help.

Please note that, despite the exception, i've tested with agent 3.0.3, 3.0.4 (jira studio aligned release) and 3.0.5 obtaining always the same results. I've also used the default image for another (compatible) build without problems.

Exception detail:

org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.InvalidClassException: com.atlassian.bamboo.author.AuthorImpl; local class incompatible: stream classdesc serialVersionUID = 2285217404304201742, local class serialVersionUID = 3058337970197016491; nested exception is java.io.InvalidClassException: com.atlassian.bamboo.author.AuthorImpl; local class incompatible: stream classdesc serialVersionUID = 2285217404304201742, local class serialVersionUID = 3058337970197016491
Caused by: javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.InvalidClassException: com.atlassian.bamboo.author.AuthorImpl; local class incompatible: stream classdesc serialVersionUID = 2285217404304201742, local class serialVersionUID = 3058337970197016491
	at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
	at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:184)
	at org.springframework.jms.support.converter.SimpleMessageConverter.extractSerializableFromMessage(SimpleMessageConverter.java:222)
	at org.springframework.jms.support.converter.SimpleMessageConverter.fromMessage(SimpleMessageConverter.java:109)
	at org.springframework.jms.core.JmsTemplate.doConvertFromMessage(JmsTemplate.java:763)
	at org.springframework.jms.core.JmsTemplate.receiveSelectedAndConvert(JmsTemplate.java:742)
	at com.atlassian.bamboo.v2.build.queue.AgentQueueAccessorImpl.takeBuildContext(AgentQueueAccessorImpl.java:31)
	at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl.getBuildContextFromQueue(BuildAgentControllerImpl.java:157)
	at com.atlassian.bamboo.v2.build.agent.BuildAgentControllerImpl.waitAndPerformBuild(BuildAgentControllerImpl.java:65)
	at com.atlassian.bamboo.v2.build.agent.DefaultBuildAgent$1.run(DefaultBuildAgent.java:102)
	at com.atlassian.bamboo.build.pipeline.concurrent.NamedThreadFactory$2.run(NamedThreadFactory.java:50)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.InvalidClassException: com.atlassian.bamboo.author.AuthorImpl; local class incompatible: stream classdesc serialVersionUID = 2285217404304201742, local class serialVersionUID = 3058337970197016491
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at java.util.ArrayList.readObject(ArrayList.java:593)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
	at org.apache.activemq.command.ActiveMQObjectMessage.getObject(ActiveMQObjectMessage.java:177)
	... 10 more

Any help, or just ideas appreciated!

Federico

1 answer

1 accepted

0 votes
Answer accepted
Przemek Bruski
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 8, 2011

This exception is only shown when the agent classes on the server do not match the classes server has. Have you copied the agent classes from a default Studio image?

Federico Spagnolini September 8, 2011

Reasonably there is a mismatch... same error with 3.0.3, 3.0.4 (studio image) and 3.0.5 agent. I presume that the message used for plan referring to issues is slightly different; maybe (...well I hope...) that a specific agent configuration can drive the actual JMS message from the server...

Przemek Bruski
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 8, 2011

bq. same error with 3.0.3, 3.0.4 (studio image)

You have the same error with an unmodified studio image?

Federico Spagnolini September 8, 2011

Przemek,

?"unmodified studio image" Wath do you mean ?

I found 3.0.3 and 3.0.5 here, while the link to 3.0.4 was given to me by Atlassian as an answer to a raised issue on the problem.

I run builds against 303,3.0.4 and 3.0.5 obtaining always the same error. I did not track exact serial object id version but I think that all agent versions reported same ids

The agent log reports the exception while deserializing the message for the plan: reasonably the message contains stage/job instruction.

Przemek Bruski
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 8, 2011

OK, let me rephrase. You've mentioned studio image. Are you a Bamboo Studio user? Or do you have a standalone Bamboo installation? If you have a standalone Bamboo installation, which version are you using?

Federico Spagnolini September 8, 2011

I'm a Bamboo Studio user. I don't think that I will install something on site anymore... :-)

Przemek Bruski
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 8, 2011

If you are a Bamboo Studio user, your installation should come with default images for Linux. Start a Linux instance, log into it and grab the assembly from /opt/bamboo-elastic-agent. If you use this assembly on Windows image, everything should work fine.

Federico Spagnolini September 8, 2011

seems reasonable, I'll let you know.

Federico Spagnolini September 8, 2011

Przemek,

I get the same error even with jars taken from Default image: same wrong ids (both expected and received)

Do you have other ideas?

Przemek Bruski
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 9, 2011

Checklist:

  1. you've taken the whole content of /opt/bamboo-elastic-agent from Studio image-based instance and put it on Windows EC2 instance.
  2. There were no other jars lying around from your previous attempts
  3. How do you start the agent?

Federico Spagnolini September 9, 2011

Przemek,

ok So the problem was actually the step number 2 of your checklist.. an old jar not replaced by new versions. I just removed and recreated the folder and the problem disappear.

Thanks for your cooperation.

Federico

Suggest an answer

Log in or Sign up to answer