12.01.2025 16:06, Michael Tokarev wrote:
09.01.2025 21:52, Fabiano Rosas wrote:
The parsing for the S390StorageAttributes section is currently leaving
an unconsumed token that is later interpreted by the generic code as
QEMU_VM_EOF, cutting the parsing short.
The migration will issue a STATTR_FLAG_DONE between iterations, which
the script consumes correctly, but there's a final STATTR_FLAG_EOS at
.save_complete that the script is ignoring. Since the EOS flag is a
u64 0x1ULL and the stream is big endian, on little endian hosts a byte
read from it will be 0x0, the same as QEMU_VM_EOF.
Fixes: 81c2c9dd5d ("tests/qtest/migration-test: Fix analyze-migration.py
for s390x")
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
This looks like a qemu-stable material (if not only for tests), is it not?
This one, when applied to 9.2 together with "s390x: Fix CSS migration",
causes s390x-migration-test failure.
First, it goes:
# starting QEMU: exec ./qemu-system-s390x -qtest unix:/tmp/
qtest-1137270.sock -qtest-log /dev/null -chardev socket,path=/tmp/
qtest-1137270.qmp,id=char0 -mon chardev=char0,mode=control -display none -
audio none -accel kvm -accel tcg -machine s390-ccw-virtio-9.2, -name
target,debug-threads=on -m 128M -serial file:/tmp/migration-test-T987Z2/
dest_serial -incoming tcp:127.0.0.1:0 -bios /tmp/migration-test-T987Z2/
bootsect -accel qtest
Traceback (most recent call last):
File "/tmp/q/scripts/analyze-migration.py", line 704, in <module>
dump.read(dump_memory = args.memory)
File "/tmp/q/scripts/analyze-migration.py", line 641, in read
section.read()
File "/tmp/q/scripts/analyze-migration.py", line 477, in read
field['data'] = reader(field, self.file)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/q/scripts/analyze-migration.py", line 450, in __init__
for field in self.desc['struct']['fields']:
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'fields'
# Failed to analyze the migration stream