Bug 1892525 - Cannot clone VM from Admin Portal if it has Direct LUN
Summary: Cannot clone VM from Admin Portal if it has Direct LUN
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: Frontend.WebAdmin
Version: 4.4.2
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ovirt-4.4.6
: 4.4.6.4
Assignee: Shmuel Melamud
QA Contact: Qin Yuan
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-10-29 03:44 UTC by Germano Veit Michel
Modified: 2021-05-05 05:36 UTC (History)
5 users (show)

Fixed In Version: ovirt-engine-4.4.6.4
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-05-05 05:36:24 UTC
oVirt Team: Virt
Embargoed:
pm-rhel: ovirt-4.4+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 113654 0 master MERGED webadmin: Incorrect casting of LunDisk to DiskImage 2021-02-23 12:26:25 UTC
oVirt gerrit 113764 0 master MERGED webadmin: Filter out LUN disks before cloning 2021-04-08 07:29:02 UTC

Description Germano Veit Michel 2020-10-29 03:44:34 UTC
Description of problem:

Cannot clone a VM if it has a Direct LUN attached, the Admin Portal dialog stops working with "Uncaught exception occurred. Please try reloading the page."

2020-10-29 13:38:50,038+10 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-7) [] Uncaught exception: java.lang.ClassCastException
	at java.lang.Throwable.Throwable(Throwable.java:66)
	at java.lang.Exception.Exception(Exception.java:28)
	at java.lang.RuntimeException.RuntimeException(RuntimeException.java:28)
	at Unknown.new NXf(webadmin-0.js)
	at javaemul.internal.InternalPreconditions.checkCriticalType(InternalPreconditions.java:152)
	at com.google.gwt.lang.Cast.castTo(Cast.java:74)
	at org.ovirt.engine.ui.common.widget.uicommon.storage.DisksAllocationItemView.$edit(DisksAllocationItemView.java:187)
	at org.ovirt.engine.ui.common.widget.uicommon.storage.DisksAllocationView.$addDiskList(DisksAllocationView.java:190)
	at org.ovirt.engine.ui.common.widget.uicommon.storage.DisksAllocationView.$lambda$0(DisksAllocationView.java:180)
	at org.ovirt.engine.ui.common.widget.uicommon.storage.DisksAllocationView$lambda$0$Type.eventRaised(DisksAllocationView.java:180)
	at org.ovirt.engine.ui.uicompat.Event.$raise(Event.java:99)
	at org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel.$onPropertyChanged(DisksAllocationModel.java:267)
	at org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel.$sortDisks(DisksAllocationModel.java:135)
	at org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel.$setDisks(DisksAllocationModel.java:93)
	at org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractVmPopupWidget.$lambda$2(AbstractVmPopupWidget.java:1693)
	at org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractVmPopupWidget$lambda$2$Type.eventRaised(AbstractVmPopupWidget.java:1693)
	at org.ovirt.engine.ui.uicompat.Event.$raise(Event.java:99)
	at org.ovirt.engine.ui.uicommonweb.models.Model.$onPropertyChanged(Model.java:470)
	at org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel.$setIsDisksAvailable(UnitVmModel.java:1393)
	at org.ovirt.engine.ui.uicommonweb.models.vms.CloneVmModelBehavior.updateIsDisksAvailable(CloneVmModelBehavior.java:45)
	at org.ovirt.engine.ui.uicommonweb.models.vms.VmModelBehaviorBase.$initTemplateDisks(VmModelBehaviorBase.java:641)
	at org.ovirt.engine.ui.uicommonweb.models.vms.CloneVmModelBehavior$0methodref$initTemplateDisks$Type.onSuccess(CloneVmModelBehavior.java:41)
	at org.ovirt.engine.ui.frontend.Frontend$1.$onSuccess(Frontend.java:227)
	at org.ovirt.engine.ui.frontend.Frontend$1.onSuccess(Frontend.java:227)
	at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.$onSuccess(OperationProcessor.java:133)
	at org.ovirt.engine.ui.frontend.communication.OperationProcessor$1.onSuccess(OperationProcessor.java:133)
	at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$5$1.$onSuccess(GWTRPCCommunicationProvider.java:270)
	at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$5$1.onSuccess(GWTRPCCommunicationProvider.java:270)
	at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:198)
	at com.google.gwt.http.client.Request.$fireOnResponseReceived(Request.java:233)
	at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:409)
	at Unknown.eval(webadmin-0.js)
	at com.google.gwt.core.client.impl.Impl.apply(Impl.java:306)
	at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:345)
	at Unknown.eval(webadmin-0.js)


Version-Release number of selected component (if applicable):
rhvm-4.4.2.6-0.2.el8ev.noarch
firefox-81.0.2-1.fc32.x86_64
google-chrome-stable-86.0.4240.75-1.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Add Direct LUN to VM
2. Try to Clone the VM

Comment 1 Qin Yuan 2021-03-01 13:14:34 UTC
Tested with:
ovirt-engine-4.4.5.7-0.1.el8ev.noarch
google-chrome-stable-88.0.4324.182-1.x86_64

Still can't clone vm when there is direct lun:

2021-03-01 15:12:38,507+02 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-13) [] Permutation name: EA8388DE881D04E99E8D4AB9209D482D
2021-03-01 15:12:38,507+02 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-13) [] Uncaught exception: com.google.gwt.event.shared.UmbrellaException: Exception caught: (TypeError) : Cannot read property 'Th' of undefined
        at java.lang.Throwable.Throwable(Throwable.java:72)
        at java.lang.RuntimeException.RuntimeException(RuntimeException.java:32)
        at com.google.web.bindery.event.shared.UmbrellaException.UmbrellaException(UmbrellaException.java:64)
        at Unknown.new F7(webadmin-0.js)
        at com.google.gwt.event.shared.HandlerManager.$fireEvent(HandlerManager.java:117)
        at com.google.gwt.user.client.ui.Widget.$fireEvent(Widget.java:127)
        at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:127)
        at com.google.gwt.event.dom.client.DomEvent.fireNativeEvent(DomEvent.java:110)
        at com.google.gwt.user.client.ui.Widget.$onBrowserEvent(Widget.java:163)
        at com.google.gwt.user.client.ui.Widget.onBrowserEvent(Widget.java:163)
        at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1415)
        at com.google.gwt.user.client.impl.DOMImplStandard.dispatchEvent(DOMImplStandard.java:312)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java:306)
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:345)
        at Unknown.eval(webadmin-0.js)
Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError) : Cannot read property 'Th' of undefined
        at org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel.$validateEntity(DisksAllocationModel.java:470)
        at org.ovirt.engine.ui.uicommonweb.models.vms.UnitVmModel.$validate(UnitVmModel.java:2980)
        at org.ovirt.engine.ui.uicommonweb.models.templates.VmBaseListModel.$validateVm(VmBaseListModel.java:321)
        at org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel.$preSavePhase3(VmListModel.java:1686)
        at org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel.$preSavePhase2(VmListModel.java:1653)
        at org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel.$preSave(VmListModel.java:1619)
        at org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel.$executeCommand(VmListModel.java:2067)
        at org.ovirt.engine.ui.uicommonweb.models.vms.VmListModel.executeCommand(VmListModel.java:2067)
        at org.ovirt.engine.ui.uicommonweb.UICommand.$execute(UICommand.java:163)
        at org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget.$lambda$4(AbstractModelBoundPopupPresenterWidget.java:306)
        at org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget$lambda$4$Type.onClick(AbstractModelBoundPopupPresenterWidget.java:306)
        at com.google.gwt.event.dom.client.ClickEvent.dispatch(ClickEvent.java:55)
        at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:76)
        at com.google.web.bindery.event.shared.SimpleEventBus.$doFire(SimpleEventBus.java:173)

Comment 2 Qin Yuan 2021-04-22 02:08:45 UTC
Verified with:
ovirt-engine-4.4.6.5-447.gd80dda7.9.el8ev.noarch

Steps:
1. Create a VM(Cluster Compatibility Version 4.6, latest-rhel-guest-image-8.3-infra template)
2. Create a direct lun disk(Storage Type iSCSI)
3. Attach the direct lun disk to the VM(interface VirtIO-SCSI, activate disk)
4. Clone the VM
5. Run the cloned VM

Results:
1. VM with direct lun disk attached can be cloned successfully.
2. The cloned VM can be started.

Info in engine.log:

2021-04-22 04:04:58,182+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-113) [458cde65] EVENT_ID: USER_ADD_VM_STARTED(37), VM test_vm_with_lun creation was initiated by admin@internal-authz.
2021-04-22 04:06:07,640+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (EE-ManagedScheduledExecutorService-engineScheduledThreadPool-Thread-65) [] EVENT_ID: USER_ADD_VM_FINISHED_SUCCESS(53), VM test_vm_with_lun creation has been completed.
...
2021-04-22 04:13:34,917+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-111) [075652e9-e368-4b95-8f24-9b708cd57e59] EVENT_ID: USER_ADD_DISK_FINISHED_SUCCESS(2,021), The disk 'test_direct_lun' was successfully added.
...
2021-04-22 04:14:47,962+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-113) [617d017a-8019-497b-b099-07b4ee141c54] EVENT_ID: USER_ATTACH_DISK_TO_VM(2,016), Disk test_direct_lun was successfully attached to VM test_vm_with_lun by admin@internal-authz.

2021-04-22 04:15:45,143+03 INFO  [org.ovirt.engine.core.bll.CloneVmCommand] (default task-111) [9dde9a1b-bdb0-4a2d-9625-2bd0b03bb5a2] Lock Acquired to object 'EngineLock:{exclusiveLocks='[clone_vm_with_lun=VM_NAME, 03412f08-430f-47ce-b460-271d4dfa2a6d=DISK, 9717383b-80db-491d-9d6e-da719d6c4478=VM]', sharedLocks=''}'
2021-04-22 04:15:45,506+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-111) [9dde9a1b-bdb0-4a2d-9625-2bd0b03bb5a2] EVENT_ID: USER_ADD_VM(34), VM clone_vm_with_lun was created by admin@internal-authz.
2021-04-22 04:17:35,420+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (EE-ManagedScheduledExecutorService-engineScheduledThreadPool-Thread-83) [] EVENT_ID: USER_ADD_VM_FINISHED_SUCCESS(53), VM clone_vm_with_lun creation has been completed.
...
2021-04-22 04:23:01,219+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (EE-ManagedThreadFactory-engine-Thread-71816) [b6c2307a-3e0a-462b-9be9-98a6075557f4] EVENT_ID: USER_STARTED_VM(153), VM clone_vm_with_lun was started by admin@internal-authz (Host: host_mixed_2).
2021-04-22 04:23:24,462+03 INFO  [org.ovirt.engine.core.vdsbroker.monitoring.VmAnalyzer] (ForkJoinPool-1-worker-17) [63e29971] VM '59a18c81-2401-45c1-9fb4-2c7d8b9356e7'(clone_vm_with_lun) moved from 'PoweringUp' --> 'Up'
2021-04-22 04:23:24,478+03 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (ForkJoinPool-1-worker-17) [63e29971] EVENT_ID: USER_RUN_VM(32), VM clone_vm_with_lun started on Host host_mixed_2

Comment 3 Sandro Bonazzola 2021-05-05 05:36:24 UTC
This bugzilla is included in oVirt 4.4.6 release, published on May 4th 2021.

Since the problem described in this bug report should be resolved in oVirt 4.4.6 release, it has been closed with a resolution of CURRENT RELEASE.

If the solution does not work for you, please open a new bug report.


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