Hi,

While reviewing 12775 I upgraded my Agents from 4.1 to 4.2, but kept my management server at 4.1

When the Agent starts it sends a StartupRoutingCommand to the management server, but this has changed it seems:

In 4.1 the Agent sends this JSON:

Sending Startup: Seq 4-0: { Cmd , MgmtId: -1, via: 4, Ver: v1, Flags: 1, [{"StartupRoutingCommand":{

In 4.2 however the JSON data starts with:

Sending Startup: Seq 1-6: { Cmd , MgmtId: -1, via: 1, Ver: v1, Flags: 1, [{"com.cloud.agent.api.StartupRoutingCommand":{

So the Agent sends the full name of the class and this confuses the Management server, it throws an Exception:

Caused by: com.cloud.utils.exception.CloudRuntimeException: can't find com.cloud.agent.api.com.cloud.agent.api.StartupRoutingCommand at com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:79) at com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:37) at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
        ... 15 more

So it's searching for "com.cloud.agent.api.com.cloud.agent.api.StartupRoutingCommand" which obviously fails.

I'm not sure how to fix this, since StartupRoutingCommand simply calls "RouterPrivateIpStrategy.class.getCanonicalName()"

I created this issue for it: https://issues.apache.org/jira/browse/CLOUDSTACK-3714

Any suggestions on how to fix this?

Wido

Reply via email to