[
https://issues.apache.org/jira/browse/CLOUDSTACK-3377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13713542#comment-13713542
]
Donal Lafferty commented on CLOUDSTACK-3377:
--------------------------------------------
Problem due to incorrect serialization in system VM being used. Previously,
the JSON serializer encoded object types using the type's simple name. Now it
is using the type's fully qualified name. Thus, the system VM should be
returning "com.cloud.agent.api.StartupProxyCommand" and not
"StartupProxyCommand". Therefore, the system VM in use needs to be updated.
> Error seen when system vms are started and due to which template download is
> not initiated : com.google.gson.JsonParseException: The JsonDeserializer
> com.cloud.agent.transport.ArrayTypeAdaptor@697537aa failed to deserialize
> json object
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-3377
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-3377
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Management Server
> Affects Versions: 4.2.0
> Reporter: Abhinav Roy
> Fix For: 4.2.0
>
>
> Steps :
> ====================
> 1. Deploy an advanced zone setup with XenServer as host.
> Expected behaviour :
> ===================
> 1. Deployment should be successful and the system vms should be created and
> started without any issue.
> Observed behaviour :
> ==================
> Though the system vms get started and are in running state, during the start
> process the following error is thrown due to which the templates don't get
> downloaded
> 013-07-05 11:52:03,688 ERROR [agent.transport.Request]
> (AgentManager-Handler-8:null) Caught problem with
> [{"StartupSecondaryStorageCommand":{"type":"SecondaryStorage","dataCenter":"1","pod":"1","guid":"s-1-VM-NfsSecondaryStorageResource","name":"s-1-VM","version":"4.2.0-SNAPSHOT","iqn":"NoIqn","publicIpAddress":"10.102.195.11","publicNetmask":"255.255.252.0","publicMacAddress":"06:7a:80:00:00:15","privateIpAddress":"10.102.195.42","privateMacAddress":"06:2c:6e:00:00:0c","privateNetmask":"255.255.252.0","storageIpAddress":"10.102.195.42","storageNetmask":"255.255.252.0","storageMacAddress":"06:2c:6e:00:00:0c","resourceName":"NfsSecondaryStorageResource","contextMap":{},"wait":0}}]
> com.google.gson.JsonParseException: The JsonDeserializer
> com.cloud.agent.transport.ArrayTypeAdaptor@697537aa failed to deserialize
> json object
> [{"StartupSecondaryStorageCommand":{"type":"SecondaryStorage","dataCenter":"1","pod":"1","guid":"s-1-VM-NfsSecondaryStorageResource","name":"s-1-VM","version":"4.2.0-SNAPSHOT","iqn":"NoIqn","publicIpAddress":"10.102.195.11","publicNetmask":"255.255.252.0","publicMacAddress":"06:7a:80:00:00:15","privateIpAddress":"10.102.195.42","privateMacAddress":"06:2c:6e:00:00:0c","privateNetmask":"255.255.252.0","storageIpAddress":"10.102.195.42","storageNetmask":"255.255.252.0","storageMacAddress":"06:2c:6e:00:00:0c","resourceName":"NfsSecondaryStorageResource","contextMap":{},"wait":0}}]
> given the type class [Lcom.cloud.agent.api.Command;
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:64)
> at
> com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
> at
> com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
> at
> com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:67)
> at
> com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:52)
> at com.google.gson.Gson.fromJson(Gson.java:551)
> at com.google.gson.Gson.fromJson(Gson.java:498)
> at com.cloud.agent.transport.Request.getCommands(Request.java:235)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.processRequest(AgentManagerImpl.java:1196)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.doTask(AgentManagerImpl.java:1349)
> at
> com.cloud.agent.manager.ClusteredAgentManagerImpl$ClusteredAgentHandler.doTask(ClusteredAgentManagerImpl.java:659)
> at com.cloud.utils.nio.Task.run(Task.java:83)
> 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:679)
> Caused by: com.cloud.utils.exception.CloudRuntimeException: can't find
> StartupSecondaryStorageCommand
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:77)
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:37)
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
> ... 15 more
> 2013-07-05 11:52:03,692 WARN [utils.nio.Task] (AgentManager-Handler-8:null)
> Caught the following exception but pushing on
> com.google.gson.JsonParseException: The JsonDeserializer
> com.cloud.agent.transport.ArrayTypeAdaptor@697537aa failed to deserialize
> json object
> [{"StartupSecondaryStorageCommand":{"type":"SecondaryStorage","dataCenter":"1","pod":"1","guid":"s-1-VM-NfsSecondaryStorageResource","name":"s-1-VM","version":"4.2.0-SNAPSHOT","iqn":"NoIqn","publicIpAddress":"10.102.195.11","publicNetmask":"255.255.252.0","publicMacAddress":"06:7a:80:00:00:15","privateIpAddress":"10.102.195.42","privateMacAddress":"06:2c:6e:00:00:0c","privateNetmask":"255.255.252.0","storageIpAddress":"10.102.195.42","storageNetmask":"255.255.252.0","storageMacAddress":"06:2c:6e:00:00:0c","resourceName":"NfsSecondaryStorageResource","contextMap":{},"wait":0}}]
> given the type class [Lcom.cloud.agent.api.Command;
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:64)
> at
> com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
> at
> com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
> at
> com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:67)
> at
> com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:52)
> at com.google.gson.Gson.fromJson(Gson.java:551)
> at com.google.gson.Gson.fromJson(Gson.java:498)
> at com.cloud.agent.transport.Request.getCommands(Request.java:235)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.processRequest(AgentManagerImpl.java:1196)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.doTask(AgentManagerImpl.java:1349)
> at
> com.cloud.agent.manager.ClusteredAgentManagerImpl$ClusteredAgentHandler.doTask(ClusteredAgentManagerImpl.java:659)
> at com.cloud.utils.nio.Task.run(Task.java:83)
> 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:679)
> Caused by: com.cloud.utils.exception.CloudRuntimeException: can't find
> StartupSecondaryStorageCommand
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:77)
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:37)
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
> ... 15 more
> 2013-07-05 11:52:04,640 ERROR [agent.transport.Request]
> (AgentManager-Handler-10:null) Caught problem with
> [{"StartupProxyCommand":{"proxyPort":80,"proxyVmId":2,"type":"ConsoleProxy","dataCenter":"1","pod":"1","guid":"Proxy.2-ConsoleProxyResource","name":"v-2-VM","version":"4.2.0-SNAPSHOT","iqn":"NoIqn","publicIpAddress":"10.102.195.12","publicNetmask":"255.255.252.0","publicMacAddress":"06:28:92:00:00:16","privateIpAddress":"10.102.195.47","privateMacAddress":"06:be:38:00:00:11","privateNetmask":"255.255.252.0","storageIpAddress":"10.102.195.47","storageNetmask":"255.255.252.0","storageMacAddress":"06:be:38:00:00:11","resourceName":"ConsoleProxyResource","contextMap":{},"wait":0}}]
> com.google.gson.JsonParseException: The JsonDeserializer
> com.cloud.agent.transport.ArrayTypeAdaptor@697537aa failed to deserialize
> json object
> [{"StartupProxyCommand":{"proxyPort":80,"proxyVmId":2,"type":"ConsoleProxy","dataCenter":"1","pod":"1","guid":"Proxy.2-ConsoleProxyResource","name":"v-2-VM","version":"4.2.0-SNAPSHOT","iqn":"NoIqn","publicIpAddress":"10.102.195.12","publicNetmask":"255.255.252.0","publicMacAddress":"06:28:92:00:00:16","privateIpAddress":"10.102.195.47","privateMacAddress":"06:be:38:00:00:11","privateNetmask":"255.255.252.0","storageIpAddress":"10.102.195.47","storageNetmask":"255.255.252.0","storageMacAddress":"06:be:38:00:00:11","resourceName":"ConsoleProxyResource","contextMap":{},"wait":0}}]
> given the type class [Lcom.cloud.agent.api.Command;
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:64)
> at
> com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
> at
> com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
> at
> com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:67)
> at
> com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:52)
> at com.google.gson.Gson.fromJson(Gson.java:551)
> at com.google.gson.Gson.fromJson(Gson.java:498)
> at com.cloud.agent.transport.Request.getCommands(Request.java:235)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.processRequest(AgentManagerImpl.java:1196)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.doTask(AgentManagerImpl.java:1349)
> at
> com.cloud.agent.manager.ClusteredAgentManagerImpl$ClusteredAgentHandler.doTask(ClusteredAgentManagerImpl.java:659)
> at com.cloud.utils.nio.Task.run(Task.java:83)
> 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:679)
> Caused by: com.cloud.utils.exception.CloudRuntimeException: can't find
> StartupProxyCommand
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:77)
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:37)
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
> ... 15 more
> 2013-07-05 11:52:04,647 WARN [utils.nio.Task] (AgentManager-Handler-10:null)
> Caught the following exception but pushing on
> com.google.gson.JsonParseException: The JsonDeserializer
> com.cloud.agent.transport.ArrayTypeAdaptor@697537aa failed to deserialize
> json object
> [{"StartupProxyCommand":{"proxyPort":80,"proxyVmId":2,"type":"ConsoleProxy","dataCenter":"1","pod":"1","guid":"Proxy.2-ConsoleProxyResource","name":"v-2-VM","version":"4.2.0-SNAPSHOT","iqn":"NoIqn","publicIpAddress":"10.102.195.12","publicNetmask":"255.255.252.0","publicMacAddress":"06:28:92:00:00:16","privateIpAddress":"10.102.195.47","privateMacAddress":"06:be:38:00:00:11","privateNetmask":"255.255.252.0","storageIpAddress":"10.102.195.47","storageNetmask":"255.255.252.0","storageMacAddress":"06:be:38:00:00:11","resourceName":"ConsoleProxyResource","contextMap":{},"wait":0}}]
> given the type class [Lcom.cloud.agent.api.Command;
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:64)
> at
> com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
> at
> com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
> at
> com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:67)
> at
> com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:52)
> at com.google.gson.Gson.fromJson(Gson.java:551)
> at com.google.gson.Gson.fromJson(Gson.java:498)
> at com.cloud.agent.transport.Request.getCommands(Request.java:235)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.processRequest(AgentManagerImpl.java:1196)
> at
> com.cloud.agent.manager.AgentManagerImpl$AgentHandler.doTask(AgentManagerImpl.java:1349)
> at
> com.cloud.agent.manager.ClusteredAgentManagerImpl$ClusteredAgentHandler.doTask(ClusteredAgentManagerImpl.java:659)
> at com.cloud.utils.nio.Task.run(Task.java:83)
> 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:679)
> Caused by: com.cloud.utils.exception.CloudRuntimeException: can't find
> StartupProxyCommand
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:77)
> at
> com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:37)
> at
> com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
> ... 15 more
> Workaround :
> ==============================
> 1. I tried removing the tags from the host and then restarting the MS, but it
> didn't work and i still saw those errors.
> 2. Reboot the XenServer host, this works.
> NOTE : This is a RPM setup not Dev setup
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira