summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_missing/1748.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/1748.toml')
-rw-r--r--gitlab/issues/target_missing/host_missing/accel_missing/1748.toml64
1 files changed, 64 insertions, 0 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/1748.toml b/gitlab/issues/target_missing/host_missing/accel_missing/1748.toml
new file mode 100644
index 000000000..e1e6d08fa
--- /dev/null
+++ b/gitlab/issues/target_missing/host_missing/accel_missing/1748.toml
@@ -0,0 +1,64 @@
+id = 1748
+title = "qcow2: disk size exceeds virtual size"
+state = "closed"
+created_at = "2023-07-04T11:25:14.573Z"
+closed_at = "2023-07-05T02:39:31.176Z"
+labels = []
+url = "https://gitlab.com/qemu-project/qemu/-/issues/1748"
+host-os = "centos8"
+host-arch = "x86"
+qemu-version = "8.0.50"
+guest-os = "centos8"
+guest-arch = "x86"
+description = """Disk size of qcow2 image file exceeds its virtual size after repeatedly writing, and deleting data in qemu vm."""
+reproduce = """1. qemu-img create -f qcow2 tmp.qcow2 32M
+2. attach tmp.qcow2 as a device to qemu vm
+3. mount the device in qemu vm, and repeatedly writing, and deleting data"""
+additional = """xml for attaching tmp.qcow2
+```xml
+   <disk device="disk" type="file">
+      <target bus="virtio" dev="vdb"/>
+      <source file="/path/to/tmp.qcow2"/>
+      <driver type="qcow2" name="qemu" cache="none" discard="unmap"/>
+   </disk>
+```
+in fact, set discard="unmap" or not seems has `little impact` on the final result.
+reproducible shell script.
+```sh
+#! /bin/sh
+
+for i in {1..1000}; do
+    for j in {1..27}; do
+        dd if=/dev/zero of=/mnt/test-$j bs=1M count=1 &
+    done
+    sync
+    sleep 10
+    rm -f /mnt/test-*   
+    fstrim /mnt
+done
+```
+MOUNT the device and run this script, problem happens about 30 minutes.
+
+final result looks like:
+```sh
+# qemu-img info tmp.qcow2 --force
+image: tmp.qcow2
+file format: qcow2
+virtual size: 32 MiB (33554432 bytes)
+disk size: 33 MiB
+cluster_size: 65536
+Format specific information:
+    compat: 1.1
+    compression type: zlib
+    lazy refcounts: false
+    refcount bits: 16
+    corrupt: false
+    extended l2: false
+Child node '/file':
+    filename: tmp.qcow2
+    protocol type: file
+    file length: 32.3 MiB (33882112 bytes)
+    disk size: 33 MiB
+    Format specific information:
+        extent size hint: 1048576
+```"""