summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/2482.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/2482.toml')
-rw-r--r--gitlab/issues/target_missing/host_missing/accel_missing/2482.toml144
1 files changed, 144 insertions, 0 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/2482.toml b/gitlab/issues/target_missing/host_missing/accel_missing/2482.toml
new file mode 100644
index 00000000..709ba58e
--- /dev/null
+++ b/gitlab/issues/target_missing/host_missing/accel_missing/2482.toml
@@ -0,0 +1,144 @@
+id = 2482
+title = "qemu-system-x86_64: Live Migration fails with BLOCK_JOB_ERROR"
+state = "opened"
+created_at = "2024-08-05T23:42:07.233Z"
+closed_at = "n/a"
+labels = ["Migration"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/2482"
+host-os = "Debian GNU/Linux 11 (bullseye)"
+host-arch = "x86_64"
+qemu-version = "QEMU emulator version 7.2.0"
+guest-os = "Debian 11"
+guest-arch = "x86_64"
+description = """After disk migration is completed and RAM migration is being performed, migration status switches to 'pre-switchover'.
+In the 'pre-switchover' migration state, block jobs status is still set to 'ready' instead of 'running'
+on queried for block job status when 'offset' and 'length' diverged. Thus, It results in BLOCK_JOB_ERROR."""
+reproduce = """On source host
+1. Add disk(s) that needed to be migrated by issuing 'blockdev-add' QMP command.
+2. start blockdev-mirror operations to perform disk(s) transfer by issuing QMP command
+3. start RAM migration. (send HMP commands - listed below
+4. Migration status changed to 'pre-switchover'. While in 'pre-switchover', check for disk activity
+
+While RAM migration is happening, Migration status is changed to 'pre-switchover'
+and observe that block jobs 'offset' and 'length' diverged. But, block job status is still set to 'ready' instead of 'running'.
+
+On destination host
+1. Launch the VM in listening mode (-incoming) for migrations
+2. start NBD server
+3. add disks to NBD server.
+4. set migration parameters by sending HMP commands"""
+additional = """# On SOURCE Host, start all blockdev-add operations
+# Issue QMP commands (blockdev-add) for all block devices ("drive-scsi-disk-0" and "drive-scsi-disk-1") of VM
+
+```
+            {
+                "execute"   => "blockdev-add",
+                "arguments" => {
+                    "driver"         => "raw",
+                    "node-name"      => "node_drive-scsi-disk-0",
+                    "auto-read-only" => false,
+                    "read-only"      => false,
+                    "file"           => {
+                        "driver" => "nbd",
+                        "export" => "drive-scsi-disk-0",
+                        "server" => {
+                            "type" => "inet",
+                            "host" => "2600:3c0f:17:14::21",
+                            "port" => "37552",
+                        },
+                        "tls-creds" => "tlscreds0"
+                    }
+                }
+            }
+```
+
+            {
+                "execute"   => "blockdev-add",
+                "arguments" => {
+                    "driver"         => "raw",
+                    "node-name"      => "node_drive-scsi-disk-1",
+                    "auto-read-only" => false,
+                    "read-only"      => false,
+                    "file"           => {
+                        "driver" => "nbd",
+                        "export" => "drive-scsi-disk-1",
+                        "server" => {
+                            "type" => "inet",
+                            "host" => "2600:3c0f:17:14::21",
+                            "port" => "37552",
+                        },
+                        "tls-creds" => "tlscreds0"
+                    }
+                }
+            }
+
+# On SOURCE Host, start all blockdev-mirror operations to start disk transfer
+# i.e Issue QMP commands (blockdev-mirror) for each of those block devices ("drive-scsi-disk-0" and "drive-scsi-disk-1")
+
+```
+        {
+            "execute"   => "blockdev-mirror",
+            "arguments" => {
+                "device" => "drive-scsi-disk0",
+                "target" => "node_drive-scsi-disk-0",
+                "speed"  => 100000000,
+                "sync"   => "full",
+            }
+        }
+```
+
+```
+        {
+            "execute"   => "blockdev-mirror",
+            "arguments" => {
+                "device" => "drive-scsi-disk1",
+                "target" => "node_drive-scsi-disk-1",
+                "speed"  => 100000000,
+                "sync"   => "full",
+            }
+        }
+```
+
+# NBD server configuration on destination host by issuing QMP command
+# Start NBD server
+```
+        {
+            "execute"   => "nbd-server-start",
+            "arguments" => {
+                "addr" => {
+                    "type" => "inet",
+                    "data" => {
+                        "host" => "2600:3c0f:17:14::21",
+                        "port" => "37552"
+                    }
+                },
+                "tls-creds" => "tlscreds0"
+            }
+        }
+```
+
+# On DESTINATION Host
+# Register incoming disks(2) with NBD server by issuing QMP commands to VM on the destination host
+# Disk# 1
+```
+        {
+            "execute"   => "nbd-server-add",
+            "arguments" => {
+                "device"   => "drive-scsi-disk0",
+                "writable" => true
+            }
+        }
+```
+# Disk# 2
+```
+        {
+            "execute"   => "nbd-server-add",
+            "arguments" => {
+                "device"   => "drive-scsi-disk1",
+                "writable" => true
+            }
+        }
+```
+
+# Wait for disks to finish the bulk of the data migration.
+#"""