qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 3/7] migration: Fix parsing of s390 stream


From: Michael Tokarev
Subject: Re: [PATCH v3 3/7] migration: Fix parsing of s390 stream
Date: Sun, 12 Jan 2025 17:29:54 +0300
User-agent: Mozilla Thunderbird

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

and finally

**
ERROR:../../build/qemu/9.2/tests/qtest/migration-test.c:4039:main: assertion 
failed (ret == 0): (1 == 0)
Bail out! ERROR:../../build/qemu/9.2/tests/qtest/migration-test.c:4039:main: 
assertion failed (ret == 0): (1 == 0)

It doesn't happen when both these patches are applied to 9.1 though -
there, the test succeeds.

Hmm..

Thanks,

/mjt



reply via email to

[Prev in Thread] Current Thread [Next in Thread]