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 |