Description of problem:
VMstate json representations of older RHEL6 releases should be added to the qemu source tree. This will facilitate checking of migration compatibility that the static checker is capable of performing.
These files will be placed in the tests/vmstate-static-checker-data/ directory. The nomenclature, subject to change, is:
rhel60-60.json
Which means this json was produced on a rhel6.0 build, with the 6.0 machine type.
rhel61-60.json
means this json was produced on rhel6.1 build with the 6.0 machine type.
Since we only have one machine type option on RHEL6, this naming scheme suffices.
New test cases are to be added to the QE test plan which runs the static checker python script (most likely from the upstream tree) and ensures no regressions are being added to the development version of RHEL6.
The testing can be automated, and can be added to autotest, as well as nightly scripts. Release maintainers can do this at git tagging time as well.
These files will be placed in the RHEL7 tree as well, to facilitate RHEL6->RHEL7 testing.

The patches that were posted and acked had slightly different names for the json files:
> These files will be placed in the tests/vmstate-static-checker-data/
> directory. The nomenclature, subject to change, is:
>
> rhel60-60.json
Instead of this, we used
rhel60,rhel6.0.0.json
> Which means this json was produced on a rhel6.0 build, with the 6.0 machine
> type.
>
> rhel61-60.json
instead of this, we used
rhel61-rhel6.0.0.json
> means this json was produced on rhel6.1 build with the 6.0 machine type.

You need to install python-argparse from the repos to get that functionality; no need to use python-2.7 or non-rhel version of python.
If you run the script from the qemu dir, you can run without any cmdline options. If you run it from the tests/ directory, you can specify the -p option (path) to point to current dir. eg:
../../scripts/vmschk-check-rhel6.py -c ../../scripts/vmstate-static-checker.py -p .
or just:
cd BUILD/qemu-kvm-0.12.1.2/
/scripts/vmschk-check-rhel6.py -c

(In reply to Amit Shah from comment #2)
> The patches that were posted and acked had slightly different names for the
> json files:
>
> > These files will be placed in the tests/vmstate-static-checker-data/
> > directory. The nomenclature, subject to change, is:
> >
> > rhel60-60.json
>
> Instead of this, we used
>
> rhel60,rhel6.0.0.json
>
> > Which means this json was produced on a rhel6.0 build, with the 6.0 machine
> > type.
> >
> > rhel61-60.json
>
> instead of this, we used
>
> rhel61-rhel6.0.0.json
Typo; we used
rhel61,rhel6.0.0.json
> > means this json was produced on rhel6.1 build with the 6.0 machine type.

(In reply to Amit Shah from comment #6)
> You need to install python-argparse from the repos to get that
> functionality; no need to use python-2.7 or non-rhel version of python.
>
> If you run the script from the qemu dir, you can run without any cmdline
> options. If you run it from the tests/ directory, you can specify the -p
> option (path) to point to current dir. eg:
>
> ../../scripts/vmschk-check-rhel6.py -c
> ../../scripts/vmstate-static-checker.py -p .
>
> or just:
>
> cd BUILD/qemu-kvm-0.12.1.2/
> /scripts/vmschk-check-rhel6.py -c
Hi, Amit
Thanks for the reply. I retest with your comment and get the comparison output. I will upload an attachment. From the output, the functionality of this bug works. And there's no error when comparing the json file between newer rhel6.4/rhel6.5 host and rhel6.6 host with various machine type. My question is for the other errors (1) "between rhel6.6 host and the host older than rhel6.4" (2) "between older hosts (rhel6.6 not involved)", do we need to file bugs about it?
My understanding is at least no need for the (2). What's your opinion?
Thanks,
Qunfang

Thanks Amit's comment. Based on above, we will check the following two items to ensure whether the bug is verified pass (or whether the things work well).
1. For any new releases, we should ensure the errors do not creep in. For example, if there's no error when compare the result between rhel6.4 and rhel6.5, then there should be no error between rhel6.4 and rhel6.6.
And if migration between rhel6.x and rhel6.(x+1) failed, then it is acceptable for migration failure between rhel6.x and rhel6.(x+2).
And according to the test reuslt in comment 9, the issue does not exist. We could also check with each machine type separately:
./scripts/vmschk-check-rhel6.py -c ./scripts/vmstate-static-checker.py -m {0,1,2,3,4,5}
2. We don't want new errors happen between rhel6.5 and rhel6.6 hosts with all the supported machine type.
[root@localhost qemu-kvm-0.12.1.2]# ./scripts/vmschk-check-rhel6.py -b -c ./scripts/vmstate-static-checker.py -s 6 -d 5
Comparing tests/vmstate-static-checker-data/rhel66,rhel6.0.0.json with tests/vmstate-static-checker-data/rhel65,rhel6.0.0.json
Comparing tests/vmstate-static-checker-data/rhel66,rhel6.1.0.json with tests/vmstate-static-checker-data/rhel65,rhel6.1.0.json
Comparing tests/vmstate-static-checker-data/rhel66,rhel6.2.0.json with tests/vmstate-static-checker-data/rhel65,rhel6.2.0.json
Comparing tests/vmstate-static-checker-data/rhel66,rhel6.3.0.json with tests/vmstate-static-checker-data/rhel65,rhel6.3.0.json
Comparing tests/vmstate-static-checker-data/rhel66,rhel6.4.0.json with tests/vmstate-static-checker-data/rhel65,rhel6.4.0.json
Comparing tests/vmstate-static-checker-data/rhel66,rhel6.5.0.json with tests/vmstate-static-checker-data/rhel65,rhel6.5.0.json
Compared 6 jsons for source rhel6.6 to dest rhel6.5 with backward migration checking enabled
[root@localhost qemu-kvm-0.12.1.2]#
[root@localhost qemu-kvm-0.12.1.2]# ./scripts/vmschk-check-rhel6.py -c ./scripts/vmstate-static-checker.py -s 5 -d 6
Comparing tests/vmstate-static-checker-data/rhel65,rhel6.0.0.json with tests/vmstate-static-checker-data/rhel66,rhel6.0.0.json
Comparing tests/vmstate-static-checker-data/rhel65,rhel6.1.0.json with tests/vmstate-static-checker-data/rhel66,rhel6.1.0.json
Comparing tests/vmstate-static-checker-data/rhel65,rhel6.2.0.json with tests/vmstate-static-checker-data/rhel66,rhel6.2.0.json
Comparing tests/vmstate-static-checker-data/rhel65,rhel6.3.0.json with tests/vmstate-static-checker-data/rhel66,rhel6.3.0.json
Comparing tests/vmstate-static-checker-data/rhel65,rhel6.4.0.json with tests/vmstate-static-checker-data/rhel66,rhel6.4.0.json
Comparing tests/vmstate-static-checker-data/rhel65,rhel6.5.0.json with tests/vmstate-static-checker-data/rhel66,rhel6.5.0.json
Compared 6 jsons for source rhel6.5 to dest rhel6.6
3. We should not be concerned about hosts where 6.5 or 6.6 is not involved at this stage.
Based on above, this bug could be verified.

(In reply to Qunfang Zhang from comment #12)
> Thanks Amit's comment. Based on above, we will check the following two items
> to ensure whether the bug is verified pass (or whether the things work well).
Correction:
Should be 3 items. And the qemu-kvm version I tested is:
qemu-kvm-0.12.1.2-2.438.el6.src.rpm
>
> 1. For any new releases, we should ensure the errors do not creep in. For
> example, if there's no error when compare the result between rhel6.4 and
> rhel6.5, then there should be no error between rhel6.4 and rhel6.6.
>
> And if migration between rhel6.x and rhel6.(x+1) failed, then it is
> acceptable for migration failure between rhel6.x and rhel6.(x+2).
>
> And according to the test reuslt in comment 9, the issue does not exist. We
> could also check with each machine type separately:
>
> ./scripts/vmschk-check-rhel6.py -c ./scripts/vmstate-static-checker.py -m
> {0,1,2,3,4,5}
>
> 2. We don't want new errors happen between rhel6.5 and rhel6.6 hosts with
> all the supported machine type.
>
> [root@localhost qemu-kvm-0.12.1.2]# ./scripts/vmschk-check-rhel6.py -b -c
> ./scripts/vmstate-static-checker.py -s 6 -d 5
> Comparing tests/vmstate-static-checker-data/rhel66,rhel6.0.0.json with
> tests/vmstate-static-checker-data/rhel65,rhel6.0.0.json
> Comparing tests/vmstate-static-checker-data/rhel66,rhel6.1.0.json with
> tests/vmstate-static-checker-data/rhel65,rhel6.1.0.json
> Comparing tests/vmstate-static-checker-data/rhel66,rhel6.2.0.json with
> tests/vmstate-static-checker-data/rhel65,rhel6.2.0.json
> Comparing tests/vmstate-static-checker-data/rhel66,rhel6.3.0.json with
> tests/vmstate-static-checker-data/rhel65,rhel6.3.0.json
> Comparing tests/vmstate-static-checker-data/rhel66,rhel6.4.0.json with
> tests/vmstate-static-checker-data/rhel65,rhel6.4.0.json
> Comparing tests/vmstate-static-checker-data/rhel66,rhel6.5.0.json with
> tests/vmstate-static-checker-data/rhel65,rhel6.5.0.json
> Compared 6 jsons for source rhel6.6 to dest rhel6.5 with backward migration
> checking enabled
>
> [root@localhost qemu-kvm-0.12.1.2]#
> [root@localhost qemu-kvm-0.12.1.2]# ./scripts/vmschk-check-rhel6.py -c
> ./scripts/vmstate-static-checker.py -s 5 -d 6
> Comparing tests/vmstate-static-checker-data/rhel65,rhel6.0.0.json with
> tests/vmstate-static-checker-data/rhel66,rhel6.0.0.json
> Comparing tests/vmstate-static-checker-data/rhel65,rhel6.1.0.json with
> tests/vmstate-static-checker-data/rhel66,rhel6.1.0.json
> Comparing tests/vmstate-static-checker-data/rhel65,rhel6.2.0.json with
> tests/vmstate-static-checker-data/rhel66,rhel6.2.0.json
> Comparing tests/vmstate-static-checker-data/rhel65,rhel6.3.0.json with
> tests/vmstate-static-checker-data/rhel66,rhel6.3.0.json
> Comparing tests/vmstate-static-checker-data/rhel65,rhel6.4.0.json with
> tests/vmstate-static-checker-data/rhel66,rhel6.4.0.json
> Comparing tests/vmstate-static-checker-data/rhel65,rhel6.5.0.json with
> tests/vmstate-static-checker-data/rhel66,rhel6.5.0.json
> Compared 6 jsons for source rhel6.5 to dest rhel6.6
>
> 3. We should not be concerned about hosts where 6.5 or 6.6 is not involved
> at this stage.
>
> Based on above, this bug could be verified.

Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
http://rhn.redhat.com/errata/RHBA-2014-1490.html

Note

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