Bug 957494 - engine: move of inactive disk is blocked on unrelated live ops (live migration of the vm, live storage migration, etc)
Summary: engine: move of inactive disk is blocked on unrelated live ops (live migratio...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine
Version: 3.2.0
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
: 3.3.0
Assignee: Maor
QA Contact: Elad
URL:
Whiteboard: storage
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-04-28 13:46 UTC by Dafna Ron
Modified: 2016-02-10 18:03 UTC (History)
11 users (show)

Fixed In Version: is9
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
oVirt Team: Storage
Target Upstream Version:
Embargoed:
abaron: Triaged+


Attachments (Terms of Use)
logs (1.93 MB, application/x-gzip)
2013-04-28 13:46 UTC, Dafna Ron
no flags Details


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 14624 0 None None None Never

Description Dafna Ron 2013-04-28 13:46:33 UTC
Created attachment 741165 [details]
logs

Description of problem:

if a disk is inactive it's not part of the xml configuration.
trying to migrate it while vm is up will fail since the image is not found.

Version-Release number of selected component (if applicable):

sf14

How reproducible:

100%

Steps to Reproduce:
1. create a vm with 1 disk and start the vm
2. attach a disk but remove the "active" tag so that the disk will be inactive
3. move the inactive disk
 
Actual results:

we are trying to live migrate the vm while the disk is inactive which will cause an error in libvirt since the disk is not really part of the vm's configuration in the xml.

Expected results:

we should not live migrate an inactive disk but use regular offline move

Additional info: logs

Comment 2 Ayal Baron 2013-05-01 09:20:56 UTC
Why is this a regression?

Comment 3 Dafna Ron 2013-06-02 11:51:21 UTC
same issue causes LiveMigrateDisk threw an exception ArrayIndexOutOfBoundsException: -1 when engine fails the operation (tested again in sf17.2). 

2013-06-02 14:48:38,302 WARN  [org.ovirt.engine.core.compat.backendcompat.PropertyInfo] (pool-4-thread-49) Unable to get value of property: vds for class org.ovirt.engine.core.bll.lsm.LiveMigrateDiskCommand
2013-06-02 14:48:38,324 ERROR [org.ovirt.engine.core.bll.EntityAsyncTask] (pool-4-thread-49) EntityAsyncTask::EndCommandAction [within thread]: EndAction for action type LiveMigrateDisk threw an exception: javax.ejb.EJBException: java.l
ang.ArrayIndexOutOfBoundsException: -1
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInNoTx(CMTTxInterceptor.java:191) [jboss-as-ejb3.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:237) [jboss-as-ejb3.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.supports(CMTTxInterceptor.java:374) [jboss-as-ejb3.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:218) [jboss-as-ejb3.jar:7.2.0.Final-redhat-8]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [jboss-as-ejb3.jar:7.2.0.Final-redhat-8]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [jboss-as-ejb3.jar:7.2.0.Final-redhat-8]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [jboss-as-ejb3.jar:7.2.0.Final-redhat-8]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) [jboss-as-ee.jar:7.2.0.Final-redhat-8]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) [jboss-as-ee.jar:7.2.0.Final-redhat-8]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) [jboss-as-ee.jar:7.2.0.Final-redhat-8]
        at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:182) [jboss-as-ee.jar:7.2.0.Final-redhat-8]
        at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation.jar:1.1.1.Final-redhat-2]
        at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:72) [jboss-as-ee.jar:7.2.0.Final-redhat-8]
        at org.ovirt.engine.core.bll.interfaces.BackendInternal$$$view8.endAction(Unknown Source) [engine-bll.jar:]
        at org.ovirt.engine.core.bll.EntityAsyncTask.EndCommandAction(EntityAsyncTask.java:147) [engine-bll.jar:]
        at org.ovirt.engine.core.bll.EntityAsyncTask.access$000(EntityAsyncTask.java:26) [engine-bll.jar:]
        at org.ovirt.engine.core.bll.EntityAsyncTask$1.run(EntityAsyncTask.java:107) [engine-bll.jar:]
        at org.ovirt.engine.core.utils.threadpool.ThreadPoolUtil$InternalWrapperRunnable.run(ThreadPoolUtil.java:71) [engine-utils.jar:]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_19]
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_19]

Comment 4 Allon Mureinik 2013-06-09 08:41:58 UTC
Moving back to new, as the patch is abandoned.

Maor - if a different patch solves this, please add it to the external trackers and move the bug back to POST/MODIFIED as appropriate

Comment 5 Maor 2013-06-09 12:29:41 UTC
The main issue here, is that we don't support a single snapshot per disk, therefore live storage migration creates snapshots on all the VM disks.
We can solve this issue with the patch I provided, although it is a work around since it doesn't really solves this issue but only notify an event that it can't be done.
The proper fix should be to have a single snapshot.

Since engine already provides an audit log to the user of the failed migrated disks, and since the user can go to the VM and migrate this specific disks one by one. probably it's worth to wait until single snapshot will be implemented?

Comment 6 Allon Mureinik 2013-06-12 08:51:44 UTC
The suggested solution that was devel-acked has been contested, removing devel-ack until a consensus is reached.

Comment 10 Daniel Erez 2013-09-17 10:26:01 UTC
Resolved as part of bug 987783 - see Comment 19 for details.

Comment 11 Allon Mureinik 2013-09-18 07:59:00 UTC
Resetting Target version based on comment 10.

Comment 12 Elad 2013-10-27 08:39:02 UTC
Movement of inactive disk which is attached to running vm is being done like should be, as off-line migration.

Verified on is19:
rhevm-3.3.0-0.27.beta1.el6ev.noarch

Comment 13 Itamar Heim 2014-01-21 22:25:03 UTC
Closing - RHEV 3.3 Released

Comment 14 Itamar Heim 2014-01-21 22:25:44 UTC
Closing - RHEV 3.3 Released

Comment 15 Itamar Heim 2014-01-21 22:29:16 UTC
Closing - RHEV 3.3 Released


Note You need to log in before you can comment on or make changes to this bug.