summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/1459.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/1459.toml')
-rw-r--r--gitlab/issues/target_missing/host_missing/accel_missing/1459.toml43
1 files changed, 43 insertions, 0 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/1459.toml b/gitlab/issues/target_missing/host_missing/accel_missing/1459.toml
new file mode 100644
index 00000000..24fa0b51
--- /dev/null
+++ b/gitlab/issues/target_missing/host_missing/accel_missing/1459.toml
@@ -0,0 +1,43 @@
+id = 1459
+title = "analyze-migration.py doesn't account for saved blocks"
+state = "opened"
+created_at = "2023-01-23T23:45:30.101Z"
+closed_at = "n/a"
+labels = ["Migration"]
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1459"
+host-os = "Linux"
+host-arch = "N/A"
+qemu-version = "7.x"
+guest-os = "n/a"
+guest-arch = "n/a"
+description = """"""
+reproduce = """1. Make a migration snapshot that includes incremental block device (from HMP: `migrate -i "exec: cat > snap"`)
+2. Load the snapshot: `scripts/analyze-migration.py -f snap` 
+
+
+```
+Traceback (most recent call last):
+  File "scripts/analyze-migration.py", line 605, in <module>
+    dump.read(dump_memory = args.memory)
+  File "scripts/analyze-migration.py", line 539, in read
+    classdesc = self.section_classes[section_key]
+KeyError: ('block', 0)
+```"""
+additional = """Here's pseudocode derived from `block_load` in `migration/block.c`:
+
+```
+N blocks of the following:
+
+  read 64 bits: sector number and flags
+    (blk->sector << BDRV_SECTOR_BITS) | flags
+
+  if flags & BLK_MIG_FLAG_EOS:
+    break
+  if flags & BLK_MIG_FLAG_PROGRESS
+    continue
+  if flags & BLK_MIG_FLAG_DEVICE_BLOCK
+    byte: name length
+    length bytes: device name string
+    if not flags & BLK_MIG_FLAG_ZERO_BLOCK:
+      read (1 << 20) bytes 
+```"""