You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Wido den Hollander <wi...@widodh.nl> on 2013/07/22 15:52:40 UTC

4.2 KVM agent can't communicate with 4.1 management server

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


Re: 4.2 KVM agent can't communicate with 4.1 management server

Posted by Wido den Hollander <wi...@widodh.nl>.

On 07/22/2013 11:29 PM, Toshiaki Hatano wrote:
> I got a question from this issue.
> Should cloudstack allow version mismatch between management and agent?
>

I already discussed this on IRC yesterday and I wanted to start a new 
[DISCUSS] thread around this, didn't get to do that yet.

Wido

> I think it's very good to have for ops.
> But it looks very difficult for dev, since every little change could
> break the interoperability. (We have to test it?)
>
> --
> Toshiaki
>
> -----Original Message-----
> From: Wido den Hollander [mailto:wido@widodh.nl]
> Sent: Monday, July 22, 2013 07:53
> To: dev@cloudstack.apache.org
> Subject: 4.2 KVM agent can't communicate with 4.1 management server
>
> 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(JsonDeseria
> lizerExceptionWrapper.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
>
>
>
> This email message is intended for the use of the person to whom it has been sent, and may contain information that is confidential or legally protected. If you are not the intended recipient or have received this message in error, you are not authorized to copy, distribute, or otherwise use this message or its attachments. Please notify the sender immediately by return e-mail and permanently delete this message and any attachments. Verio Inc. makes no warranty that this email is error or virus free.  Thank you.
>

RE: 4.2 KVM agent can't communicate with 4.1 management server

Posted by Toshiaki Hatano <to...@verio.net>.
I got a question from this issue.
Should cloudstack allow version mismatch between management and agent?

I think it's very good to have for ops.
But it looks very difficult for dev, since every little change could
break the interoperability. (We have to test it?)

--
Toshiaki

-----Original Message-----
From: Wido den Hollander [mailto:wido@widodh.nl] 
Sent: Monday, July 22, 2013 07:53
To: dev@cloudstack.apache.org
Subject: 4.2 KVM agent can't communicate with 4.1 management server

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(JsonDeseria
lizerExceptionWrapper.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



This email message is intended for the use of the person to whom it has been sent, and may contain information that is confidential or legally protected. If you are not the intended recipient or have received this message in error, you are not authorized to copy, distribute, or otherwise use this message or its attachments. Please notify the sender immediately by return e-mail and permanently delete this message and any attachments. Verio Inc. makes no warranty that this email is error or virus free.  Thank you.