Rajani Karuturi created CLOUDSTACK-9081:
-------------------------------------------

             Summary: Unable to convert to json in Storage XenMotion
                 Key: CLOUDSTACK-9081
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9081
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
            Reporter: Rajani Karuturi


Storage motion of vm across clusters/xenserver-pools fails
in a clustered management server setup. In xen storage motion we have to send a 
migrate_receive command to the destination host, followed by migrate_send 
command to the source host. The sr and network detials of the destination host 
have to be passed in migrate_send command on the source. While migrating across 
clusters the source and destination resources are seperate objects. To pass 
this information across resources we have to send seperate migrate with storage 
receive and send commands to the resource. In a clustered ms setup these 
commands may have to be forwarded to another ms as the resource may be owned by 
it. The serilization of the command and answer objects fails in such case as it 
doesn't understand the xapi sr and network objects.

The following JSON conversion error was recorded in management-server2.log.
{noformat}
2015-06-19 10:36:48,507 ERROR [c.c.a.t.Request] (AgentManager-Handler-7:null) 
(logid:) Unable to convert to json: 
[{"com.cloud.agent.api.MigrateWithStorageReceiveAnswer":{"volumeToSr":[{"t":{"id":51828,"name":"Data4","path":"abce3250-8c25-4634-89e3-cef7af6e16b8","size":5368709120,"type":"DATADISK","storagePoolType":"IscsiLUN","storagePoolUuid":"3ae7d68f-8981-34ac-95f0-c67ef3354748","deviceId":4},"u":{"ref":"OpaqueRef:63e4185a-835a-c7e2-4dc3-fbcb95e97872"}},{"t":{"id":51729,"name":"ROOT-61290","path":"19a7495d-fb3b-45ef-92e6-e86c017ed1f2","size":53687091200,"type":"ROOT","storagePoolType":"IscsiLUN","storagePoolUuid":"cb398aad-77cc-3916-9e3f-3debec31ff71","deviceId":0},"u":{"ref":"OpaqueRef:63e4185a-835a-c7e2-4dc3-fbcb95e97872"}},{"t":{"id":51826,"name":"Data2","path":"13982b0d-e427-45df-9c7f-b258406bdcd7","size":5368709120,"type":"DATADISK","storagePoolType":"IscsiLUN","storagePoolUuid":"3ae7d68f-8981-34ac-95f0-c67ef3354748","deviceId":2},"u":{"ref":"OpaqueRef:63e4185a-835a-c7e2-4dc3-fbcb95e97872"}},{"t":{"id":51825,"name":"Data1","path":"064685fc-1abf-4086-8f81-98dfea2090ce","size":5368709120,"type":"DATADISK","storagePoolType":"IscsiLUN","storagePoolUuid":"3ae7d68f-8981-34ac-95f0-c67ef3354748","deviceId":1},"u":{"ref":"OpaqueRef:63e4185a-835a-c7e2-4dc3-fbcb95e97872"}},{"t":{"id":51829,"name":"Data5","path":"85d8ab52-7c79-4338-9433-11a50cb0bbc1","size":5368709120,"type":"DATADISK","storagePoolType":"IscsiLUN","storagePoolUuid":"3ae7d68f-8981-34ac-95f0-c67ef3354748","deviceId":5},"u":{"ref":"OpaqueRef:63e4185a-835a-c7e2-4dc3-fbcb95e97872"}},{"t":{"id":51827,"name":"Data3","path":"7fc80df1-5065-4286-a1c8-87574e798251","size":5368709120,"type":"DATADISK","storagePoolType":"IscsiLUN","storagePoolUuid":"3ae7d68f-8981-34ac-95f0-c67ef3354748","deviceId":12},"u":{"ref":"OpaqueRef:63e4185a-835a-c7e2-4dc3-fbcb95e97872"}}],"nicToNetwork":[{"t":{"deviceId":0,"networkRateMbps":2000,"defaultNic":true,"pxeDisable":false,"nicUuid":"45cd68fb-fe60-454c-9a08-f73fd902cef0","uuid":"38a40e2d-0f12-4015-9753-8c08d76d52dc","ip":"172.27.0.113","netmask":"255.255.0.0","gateway":"172.27.0.1","mac":"02:00:59:6b:00:08","dns1":"8.8.8.8","dns2":"8.8.4.4","broadcastType":"Vlan","type":"Guest","broadcastUri":"vlan://1109","isolationUri":"vlan://1109","isSecurityGroupEnabled":false,"name":"cloud-public"},"u":{"ref":"OpaqueRef:c9087c77-81f9-03eb-9cf8-df7868354563"}},{"t":{"deviceId":1,"networkRateMbps":-1,"defaultNic":false,"pxeDisable":false,"nicUuid":"1504aed4-4871-48d5-abed-581889cea7c7","uuid":"28f3a4f4-dd3d-42d2-b4a4-5243a50232c8","ip":"10.10.10.2","netmask":"255.255.255.0","gateway":"10.10.10.1","mac":"06:a8:b8:00:10:83","dns1":"8.8.8.8","dns2":"8.8.4.4","broadcastType":"Vlan","type":"Guest","broadcastUri":"vlan://3339","isolationUri":"vlan://3339","isSecurityGroupEnabled":false,"name":"cloud-public"},"u":{"ref":"OpaqueRef:0110ebab-607d-f02f-134a-383e77324677"}}],"token":{"session_id":"OpaqueRef:c5929d08-fc30-939b-fd01-0921799fb98a","host":"OpaqueRef:0d842514-468d-4dd9-5dfe-015ce3898a66","SM":"http://10.32.1.4/services/SM?session_id\u003dOpaqueRef:c5929d08-fc30-939b-fd01-0921799fb98a","master":"http://10.13.4.1/","xenops":"http://10.32.1.4/services/xenops?session_id\u003dOpaqueRef:c5929d08-fc30-939b-fd01-0921799fb98a"},"result":true,"contextMap":{},"wait":0}}]
2015-06-19 10:36:48,507 WARN  [c.c.u.n.Task] (AgentManager-Handler-7:null) 
(logid:) Caught the following exception but pushing on
com.google.gson.JsonParseException: Type information is unavailable, and the 
target object is not a primitive: 
{"ref":"OpaqueRef:63e4185a-835a-c7e2-4dc3-fbcb95e97872"}
        at 
com.google.gson.JsonObjectDeserializationVisitor.visitPrimitive(JsonObjectDeserializationVisitor.java:130)
        at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:116)
        at 
com.google.gson.JsonDeserializationVisitor.visitChild(JsonDeserializationVisitor.java:110)
        at 
com.google.gson.JsonDeserializationVisitor.visitChildAsObject(JsonDeserializationVisitor.java:99)
        at 
com.google.gson.JsonObjectDeserializationVisitor.visitObjectField(JsonObjectDeserializationVisitor.java:63)
        at 
com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:69)
        at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
        at 
com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76)
        at 
com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54)
        at 
com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter.deserialize(DefaultTypeAdapters.java:663)
        at 
com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter.deserialize(DefaultTypeAdapters.java:624)
        at 
com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
        at 
com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
        at 
com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:117)
        at 
com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:63)
        at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
        at 
com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76)
        at 
com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54)
        at com.google.gson.Gson.fromJson(Gson.java:551)
        at com.google.gson.Gson.fromJson(Gson.java:521)
        at 
com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:80)
        at 
com.cloud.agent.transport.ArrayTypeAdaptor.deserialize(ArrayTypeAdaptor.java:40)
        at 
com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
        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.google.gson.Gson.fromJson(Gson.java:467)
        at com.google.gson.Gson.fromJson(Gson.java:417)
        at com.google.gson.Gson.fromJson(Gson.java:389)
        at com.cloud.agent.transport.Request.log(Request.java:398)
        at com.cloud.agent.transport.Request.logD(Request.java:367)
        at 
com.cloud.agent.manager.AgentAttache.processAnswers(AgentAttache.java:272)
        at 
com.cloud.agent.manager.ClusteredAgentManagerImpl$ClusteredAgentHandler.doTask(ClusteredAgentManagerImpl.java:696)
        at com.cloud.utils.nio.Task.run(Task.java:84)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
{noformat}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to