[
https://issues.apache.org/jira/browse/CLOUDSTACK-6510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13996198#comment-13996198
]
ASF subversion and git services commented on CLOUDSTACK-6510:
-------------------------------------------------------------
Commit f0dcf474f2f46075a01f4323eb9f9950466b3d28 in cloudstack's branch
refs/heads/4.4 from [~devdeep]
[ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=f0dcf47 ]
CLOUDSTACK-6510: Fix gson serialization exception in storage migration. Gson
couldn't serialize
a map with volume and storagepool objects for logging. Fixed by using volume
and storage pool
ids instead of objects in the map.
> java.lang.IllegalStateException: circular reference error during live
> migration of VM.
> --------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-6510
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6510
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Affects Versions: 4.4.0
> Environment: MS 4.4
> XS 6.2.0
> Reporter: Sanjay Tripathi
> Assignee: Devdeep Singh
> Fix For: 4.4.0
>
>
> Getting the following exception during live migration of VM, though this is
> not affecting live migration functionality:
> 2014-04-25 13:59:27,699 DEBUG [c.c.a.t.Request]
> (Work-Job-Executor-2:job-71/job-72 ctx-1920db32) Seq 4-3947968023343661101:
> Executing: { Cmd , MgmtId: 116698015432997, via: 4(xen20.cloud.com), Ver:
> v1, Flags: 100011,
> [{"com.cloud.agent.api.CheckVirtualMachineCommand":{"vmName":"i-2-9-VM","wait":20}}]
> }
> 2014-04-25 13:59:27,700 DEBUG [c.c.a.m.DirectAgentAttache]
> (DirectAgent-36:ctx-a412b1b1) Seq 4-3947968023343661101: Executing request
> 2014-04-25 13:59:27,718 DEBUG [c.c.h.x.r.CitrixResourceBase]
> (DirectAgent-36:ctx-a412b1b1) 3. The VM i-2-9-VM is in Running state
> 2014-04-25 13:59:27,719 DEBUG [c.c.a.m.DirectAgentAttache]
> (DirectAgent-36:ctx-a412b1b1) Seq 4-3947968023343661101: Response Received:
> 2014-04-25 13:59:27,719 DEBUG [c.c.a.t.Request] (DirectAgent-36:ctx-a412b1b1)
> Seq 4-3947968023343661101: Processing: { Ans: , MgmtId: 116698015432997,
> via: 4, Ver: v1, Flags: 10,
> [{"com.cloud.agent.api.CheckVirtualMachineAnswer":{"state":"Running","result":true,"wait":0}}]
> }
> 2014-04-25 13:59:27,721 DEBUG [c.c.a.t.Request]
> (Work-Job-Executor-2:job-71/job-72 ctx-1920db32) Seq 4-3947968023343661101:
> Received: { Ans: , MgmtId: 116698015432997, via: 4, Ver: v1, Flags: 10, {
> CheckVirtualMachineAnswer } }
> 2014-04-25 13:59:27,735 DEBUG [c.c.a.m.DirectAgentAttache]
> (DirectAgent-59:ctx-3603e975) Seq 1-2562829662950522954: Response Received:
> 2014-04-25 13:59:27,736 DEBUG [c.c.a.t.Request]
> (StatsCollector-1:ctx-8f878bfd) Seq 1-2562829662950522954: Received: { Ans:
> , MgmtId: 116698015432997, via: 1, Ver: v1, Flags: 10, { GetGPUStatsAnswer } }
> 2014-04-25 13:59:27,807 DEBUG [c.c.v.VmWorkJobDispatcher]
> (Work-Job-Executor-2:job-71/job-72) Done with run of VM work job:
> com.cloud.vm.VmWorkMigrate for VM 9, job origin: 71
> 2014-04-25 13:59:27,807 ERROR [c.c.v.VmWorkJobDispatcher]
> (Work-Job-Executor-2:job-71/job-72) Unable to complete AsyncJobVO {id:72,
> userId: 2, accountId: 2, instanceType: null, instanceId: null, cmd:
> com.cloud.vm.VmWorkMigrate, cmdInfo:
> rO0ABXNyACVjb20uY2xvdWQudm0uVm1Xb3JrTWlncmF0ZVdpdGhTdG9yYWdlsew9z6UxtXMCAANKAApkZXN0SG9zdElkSgAJc3JjSG9zdElkTAAMdm9sdW1lVG9Qb29sdAAPTGphdmEvdXRpbC9NYXA7eHIAE2NvbS5jbG91ZC52bS5WbVdvcmufmbZW8CVnawIABEoACWFjY291bnRJZEoABnVzZXJJZEoABHZtSWRMAAtoYW5kbGVyTmFtZXQAEkxqYXZhL2xhbmcvU3RyaW5nO3hwAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAJdAAZVmlydHVhbE1hY2hpbmVNYW5hZ2VySW1wbAAAAAAAAAAEAAAAAAAAAAVzcgARamF2YS51dGlsLkhhc2hNYXAFB9rBwxZg0QMAAkYACmxvYWRGYWN0b3JJAAl0aHJlc2hvbGR4cD9AAAAAAAAMdwgAAAAQAAAAAHg,
> cmdVersion: 0, status: IN_PROGRESS, processStatus: 0, resultCode: 0, result:
> null, initMsid: 116698015432997, completeMsid: null, lastUpdated: null,
> lastPolled: null, created: Fri Apr 25 13:55:58 IST 2014}, job origin:71
> java.lang.IllegalStateException: circular reference error
> Offending field: field
> Offending object: preserveType: false, type: class java.lang.reflect.Field,
> obj: private long org.apache.cloudstack.storage.datastore.db.StoragePoolVO.id
> at
> com.google.gson.CircularReferenceException.createDetailedException(CircularReferenceException.java:43)
> at
> com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:117)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:69)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:127)
> at
> com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:114)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:69)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:127)
> at
> com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:114)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:69)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsArrayElement(JsonSerializationVisitor.java:139)
> at
> com.google.gson.JsonSerializationVisitor.visitArray(JsonSerializationVisitor.java:84)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:112)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:127)
> at
> com.google.gson.JsonSerializationVisitor.visitArrayField(JsonSerializationVisitor.java:96)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:67)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:127)
> at
> com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:114)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:69)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:127)
> at
> com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:114)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:69)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:127)
> at
> com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:114)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:69)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationContextDefault.serialize(JsonSerializationContextDefault.java:62)
> at
> com.google.gson.BaseMapTypeAdapter.serialize(BaseMapTypeAdapter.java:34)
> at com.google.gson.MapTypeAdapter.serialize(MapTypeAdapter.java:53)
> at com.google.gson.MapTypeAdapter.serialize(MapTypeAdapter.java:33)
> at
> com.google.gson.JsonSerializationVisitor.findAndInvokeCustomSerializer(JsonSerializationVisitor.java:184)
> at
> com.google.gson.JsonSerializationVisitor.visitFieldUsingCustomHandler(JsonSerializationVisitor.java:204)
> at
> com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:63)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
> at
> com.google.gson.JsonSerializationContextDefault.serialize(JsonSerializationContextDefault.java:62)
> at
> com.google.gson.JsonSerializationContextDefault.serialize(JsonSerializationContextDefault.java:53)
> at com.google.gson.Gson.toJsonTree(Gson.java:220)
> at com.google.gson.Gson.toJson(Gson.java:260)
> at com.google.gson.Gson.toJson(Gson.java:240)
> at
> com.cloud.vm.VmWorkJobHandlerProxy.handleVmWorkJob(VmWorkJobHandlerProxy.java:110)
> at
> com.cloud.vm.VirtualMachineManagerImpl.handleVmWorkJob(VirtualMachineManagerImpl.java:5312)
> at
> com.cloud.vm.VmWorkJobDispatcher.runJob(VmWorkJobDispatcher.java:102)
> at
> org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:495)
> at
> org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103)
> at
> org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53)
> at
> org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46)
> at
> org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:452)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> 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:722)
> Caused by: com.google.gson.CircularReferenceException: circular reference
> error
> at
> com.google.gson.JsonSerializationVisitor.start(JsonSerializationVisitor.java:61)
> at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:109)
> at
> com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:147)
> at
> com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:127)
> ... 66 more
> 2014-04-25 13:59:27,814 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl]
> (Work-Job-Executor-2:job-71/job-72) Complete async job-72, jobStatus: FAILED,
> resultCode: 0, result: rO0ABXN...
--
This message was sent by Atlassian JIRA
(v6.2#6252)