Verification done on ussuri-proposed.
Steps explained in previous comments.
The migration status with the synthetic reproducer in GDB
is now still 'SETUP' (which is not expected to have RAM statistics),
instead of 'ACTIVE' (which is, and caused the issue):
(gdb) b migrate_set_state
Breakpoint 1 at 0x6ba8c0: file ./migration/migration.c, line 1464.
(gdb) b migration/migration.c:928
Breakpoint 2 at 0x6b9fb3: file ./migration/migration.c, line 928.
(gdb) run -nodefaults -nographic -S -monitor tcp:0:3333,server,wait=off
...
Terminal 3)
$ nc 127.0.0.1 3333
QEMU 4.2.1 monitor - type 'help' for more information
(qemu) migrate -d tcp:127.0.0.1:4444
Terminal 2)
Thread 1 "qemu-system-x86" hit Breakpoint 1, migrate_set_state (state=0x5555566a11d8, old_state=0, new_state=1) at ./migration/migration.c:1464
1464 ./migration/migration.c: No such file or directory.
(gdb) p (MigrationStatus) 0
$1 = MIGRATION_STATUS_NONE
(gdb) p (MigrationStatus) 1
$2 = MIGRATION_STATUS_SETUP
(gdb) c
Continuing.
...
Thread 5 "qemu-system-x86" hit Breakpoint 1, migrate_set_state (state=0x5555566a11d8, old_state=1, new_state=4) at ./migration/migration.c:1464
1464 in ./migration/migration.c
(gdb) p (MigrationStatus) 1
$3 = MIGRATION_STATUS_SETUP
(gdb) p (MigrationStatus) 4
$4 = MIGRATION_STATUS_ACTIVE
(gdb)
Terminal 3)
(qemu) info migrate
Terminal 2)
Thread 1 "qemu-system-x86" hit Breakpoint 2, fill_source_migration_info (info=0x5555572d29b0) at ./migration/migration.c:928
928 in ./migration/migration.c
(gdb) info threads
Id Target Id Frame
* 1 Thread 0x7ffff7fcdcc0 (LWP 1477) "qemu-system-x86" fill_source_migration_info (info=0x5555572d29b0) at ./migration/migration.c:928
2 Thread 0x7fffe61ff700 (LWP 1481) "qemu-system-x86" (running)
3 Thread 0x7fffe59fe700 (LWP 1482) "qemu-system-x86" (running)
5 Thread 0x7fffdd7fe700 (LWP 1485) "qemu-system-x86" migrate_set_state (state=0x5555566a11d8, old_state=1, new_state=4) at ./migration/migration.c:1464
(gdb) thread 5
[Switching to thread 5 (Thread 0x7fffdd7fe700 (LWP 1485))]
#0 migrate_set_state (state=0x5555566a11d8, old_state=1, new_state=4) at ./migration/migration.c:1464
1464 in ./migration/migration.c
(gdb) continue &
Continuing.
(gdb) info threads
Id Target Id Frame
1 Thread 0x7ffff7fcdcc0 (LWP 1477) "qemu-system-x86" fill_source_migration_info (info=0x5555572d29b0) at ./migration/migration.c:928
2 Thread 0x7fffe61ff700 (LWP 1481) "qemu-system-x86" (running)
3 Thread 0x7fffe59fe700 (LWP 1482) "qemu-system-x86" (running)
* 5 Thread 0x7fffdd7fe700 (LWP 1485) "qemu-system-x86" (running)
(gdb) thread 1
[Switching to thread 1 (Thread 0x7ffff7fcdcc0 (LWP 1477))]
#0 fill_source_migration_info (info=0x5555572d29b0) at ./migration/migration.c:928
928 in ./migration/migration.c
(gdb) c
Continuing.
Terminal 3)
(qemu) info migrate
info migrate
globals:
store-global-state: on
only-migratable: off
send-configuration: on
send-section-footer: on
decompress-error-check: on
clear-bitmap-shift: 18
Migration status: setup
total time: 0 milliseconds
Status is now still 'SETUP' (which is not expected to have RAM statistics), not 'ACTIVE' (which is, and caused the issue).
Verification done on ussuri-proposed.
Steps explained in previous comments.
The migration status with the synthetic reproducer in GDB
is now still 'SETUP' (which is not expected to have RAM statistics),
instead of 'ACTIVE' (which is, and caused the issue):
(qemu) info migrate
...
Migration status: setup
...
$ lsb_release -cs
bionic
$ apt policy qemu-system-x86 27~cloud0 27~cloud0 27~cloud0 500 ubuntu- cloud.archive. canonical. com/ubuntu bionic- proposed/ ussuri/ main amd64 Packages dpkg/status
qemu-system-x86:
Installed: 1:4.2-3ubuntu6.
Candidate: 1:4.2-3ubuntu6.
Version table:
*** 1:4.2-3ubuntu6.
500 http://
100 /var/lib/
...
$ file $(which qemu-system-x86_64) | grep -o 'BuildID.*,' sha1]=82a415929 4ae653e770be24b bcfbb35703e6000 5,
BuildID[
(Corey provided the .ddeb packages which is not yet exposed/published in PPAs/archive.)
$ dpkg-deb -c qemu-system- x86-dbgsym_ 4.2-3ubuntu6. 27~cloud0_ amd64.ddeb | fgrep .debug debug/. build-id/ 48/bd78ceee4a66 9d37efd9ac8d851 947205de4f7. debug debug/. build-id/ 82/a4159294ae65 3e770be24bbcfbb 35703e60005. debug
-rw-r--r-- root/root 21271712 2023-10-26 14:08 ./usr/lib/
-rw-r--r-- root/root 21321832 2023-10-26 14:08 ./usr/lib/
$ sudo apt install ./qemu- system- x86-dbgsym_ 4.2-3ubuntu6. 27~cloud0_ amd64.ddeb
$ apt source qemu
$ head -n1 qemu-4. 2/debian/ changelog 3ubuntu6. 27~cloud0) bionic-ussuri; urgency=medium
qemu (1:4.2-
915 static void fill_source_ migration_ info(MigrationI nfo *info) STATUS_ SETUP: total_time = false;
...
926 case MIGRATION_
927 info->has_status = true;
928 info->has_
929 break;
Terminal 1)
$ qemu-system-x86_64 -nodefaults -nographic -S -incoming tcp:0:4444
Terminal 2)
$ gdb \ system- x86_64 x86_64. ..Reading symbols from /usr/lib/ debug/. build-id/ 82/a4159294ae65 3e770be24bbcfbb 35703e60005. debug.. .done.
-ex 'set non-stop on' -ex 'set pagination off' -ex 'set confirm off' \
qemu-
...
Reading symbols from qemu-system-
done.
(gdb) b migrate_set_state migration. c, line 1464.
Breakpoint 1 at 0x6ba8c0: file ./migration/
(gdb) b migration/ migration. c:928 migration. c, line 928.
Breakpoint 2 at 0x6b9fb3: file ./migration/
(gdb) run -nodefaults -nographic -S -monitor tcp:0:3333, server, wait=off
...
Terminal 3)
$ nc 127.0.0.1 3333
QEMU 4.2.1 monitor - type 'help' for more information
(qemu) migrate -d tcp:127.0.0.1:4444
Terminal 2)
Thread 1 "qemu-system-x86" hit Breakpoint 1, migrate_set_state (state= 0x5555566a11d8, old_state=0, new_state=1) at ./migration/ migration. c:1464 migration. c: No such file or directory.
1464 ./migration/
(gdb) p (MigrationStatus) 0 STATUS_ NONE
$1 = MIGRATION_
(gdb) p (MigrationStatus) 1 STATUS_ SETUP
$2 = MIGRATION_
(gdb) c
Continuing.
...
Thread 5 "qemu-system-x86" hit Breakpoint 1, migrate_set_state (state= 0x5555566a11d8, old_state=1, new_state=4) at ./migration/ migration. c:1464 migration. c
1464 in ./migration/
(gdb) p (MigrationStatus) 1 STATUS_ SETUP
$3 = MIGRATION_
(gdb) p (MigrationStatus) 4 STATUS_ ACTIVE
$4 = MIGRATION_
(gdb)
Terminal 3)
(qemu) info migrate
Terminal 2)
Thread 1 "qemu-system-x86" hit Breakpoint 2, fill_source_ migration_ info (info=0x5555572 d29b0) at ./migration/ migration. c:928 migration. c
928 in ./migration/
(gdb) info threads migration_ info (info=0x5555572 d29b0) at ./migration/ migration. c:928 0x5555566a11d8, old_state=1, new_state=4) at ./migration/ migration. c:1464
Id Target Id Frame
* 1 Thread 0x7ffff7fcdcc0 (LWP 1477) "qemu-system-x86" fill_source_
2 Thread 0x7fffe61ff700 (LWP 1481) "qemu-system-x86" (running)
3 Thread 0x7fffe59fe700 (LWP 1482) "qemu-system-x86" (running)
5 Thread 0x7fffdd7fe700 (LWP 1485) "qemu-system-x86" migrate_set_state (state=
(gdb) thread 5 0x5555566a11d8, old_state=1, new_state=4) at ./migration/ migration. c:1464 migration. c
[Switching to thread 5 (Thread 0x7fffdd7fe700 (LWP 1485))]
#0 migrate_set_state (state=
1464 in ./migration/
(gdb) continue &
Continuing.
(gdb) info threads migration_ info (info=0x5555572 d29b0) at ./migration/ migration. c:928
Id Target Id Frame
1 Thread 0x7ffff7fcdcc0 (LWP 1477) "qemu-system-x86" fill_source_
2 Thread 0x7fffe61ff700 (LWP 1481) "qemu-system-x86" (running)
3 Thread 0x7fffe59fe700 (LWP 1482) "qemu-system-x86" (running)
* 5 Thread 0x7fffdd7fe700 (LWP 1485) "qemu-system-x86" (running)
(gdb) thread 1 migration_ info (info=0x5555572 d29b0) at ./migration/ migration. c:928 migration. c
[Switching to thread 1 (Thread 0x7ffff7fcdcc0 (LWP 1477))]
#0 fill_source_
928 in ./migration/
(gdb) c
Continuing.
Terminal 3)
(qemu) info migrate footer: on error-check: on
info migrate
globals:
store-global-state: on
only-migratable: off
send-configuration: on
send-section-
decompress-
clear-bitmap-shift: 18
Migration status: setup
total time: 0 milliseconds
Status is now still 'SETUP' (which is not expected to have RAM statistics), not 'ACTIVE' (which is, and caused the issue).