Bug 996005
Summary: | ImportVmTemplateParameters fails (Unexpected token) | ||
---|---|---|---|
Product: | Red Hat Enterprise Virtualization Manager | Reporter: | Meital Bourvine <mbourvin> |
Component: | ovirt-engine | Assignee: | Roy Golan <rgolan> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Meital Bourvine <mbourvin> |
Severity: | urgent | Docs Contact: | |
Priority: | unspecified | ||
Version: | 3.3.0 | CC: | acathrow, bzrh.bobd, cdhouch, eedri, herrold, iheim, lpeer, mbourvin, michal.skrivanek, nlevinki, obasan, pstehlik, Rhev-m-bugs, yeylon |
Target Milestone: | --- | Keywords: | TestBlocker |
Target Release: | 3.3.0 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | virt | ||
Fixed In Version: | is10 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | Type: | Bug | |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Meital Bourvine
2013-08-12 07:41:02 UTC
how reproducible? steps to reproduce? I still see it on ci *** Bug 996571 has been marked as a duplicate of this bug. *** I don't know how reproducible it is, since I only saw it on CI job - maybe eedri can give more info about it. Steps to reproduce: Create iSCSI data center (name=iscsiStorageTest) Create iSCSI export storage domain (name=ImpExp_iscsi) Attach export storage domain to data center Activate export storage domain Create shared ISO domain NFS (name=shared-iso-domain) Attach shared ISO domain to data center iscsiStorageTest Activate shared ISO storage domain Create VM with rhel6 (name=iscsiTestVm) Stop running VM (iscsiTestVm) to create template Create template (name=iscsiTestTempl) Create VM from template (name=iscsiTemplVm) Wait till vm is down Try to export VM (iscsiTemplVm) only to data domain (iscsiStorageTest_data_domain0) Try to export VM (iscsiTemplVm) only to ISO domain (shared-iso-domain) Export VM (iscsiTemplVm) to domain (ImpExp_iscsi) checkVmVolume after VM (iscsiTemplVm) export to domain (ImpExp_iscsi) Remove VM (iscsiTemplVm) from export domain (ImpExp_iscsi) checkVmVolume after VM (iscsiTemplVm) removal from export domain (ImpExp_iscsi) Export VM (iscsiTemplVm) after VMs removal from export domain to domain(ImpExp_iscsi) checkVmVolume after the second VM export (iscsiTemplVm) in domain (ImpExp_iscsi) Export template (iscsiTestTempl) to domain (ImpExp_iscsi) checkTemplateVolume after template (iscsiTestTempl) export to (ImpExp_iscsi) Export VM (iscsiTemplVm) after template export to (ImpExp_iscsi) Wait for VM down status (iscsiTemplVm) Remove VM (iscsiTemplVm) after template export Remove template (iscsiTestTempl) Import exported template (iscsiTestTempl) (import_storagedomain='iscsiStorageTest_data_domain0',export_storagedomain='ImpExp_iscsi') Import exported VM after VM removal (iscsiTemplVm) (import_storagedomain='iscsiStorageTest_data_domain0',export_storagedomain='ImpExp_iscsi') <here it failed> Working on CI. *** Bug 996309 has been marked as a duplicate of this bug. *** Is there plan to backport this bug to ovirt-stable? It is really nasty because a single import operation can corrupt the engine and cause it to fail completely. the import flow is creating a VDSM task to copy in disks from the a template. a JSON structure (the task details) is being saved to the DB. when the task is done the engine is reading the JSON from DB back and trying to de-serialize it into a java object bad serialized form: { diskMap: [ "java.util.Map", { ... the map} ] } while it should be { diskMap: [ "java.util.HashMap", { ... the map} ] } when this is being de-serialized back the Json mapper know which concrete Map type to create. (in detail java.util.Map is an Abstract class) more of this in on the patch http://gerrit.ovirt.org/18001 * the engine isn't corrupted by this. this only mean the task could not be terminate and be cleared properly i.e affecting the template in question. * workaround - UNTESTED, didn't try this but changing the JSON in db directly might make the de-serialization work: psql engine postgres -tq -c "select task_parameters from async_task where task_id = '{taskId}';" | sed 's/java\.util\.Map/java\.util\.HashMap/' | psql engine postgres -c "update async_task set task_parameters = '$(xargs < /dev/stdio)' where task_id = '{task_id}' Closing - RHEV 3.3 Released Closing - RHEV 3.3 Released Closing - RHEV 3.3 Released |