qemu-io: block/qcow2-cluster.c:1109: handle_copied: Assertion failed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
git is at HEAD a93ece47fd9edbd
This is on ppc64le architecture.
Re-production steps:
1. Copy the attached file test.img to a directory
2. And customize the following command to point to the above directory and run the same.
# mv test.img copy.img
# qemu-io <path to>/copy.img -c "write 4105728 2791936"
from gdb:
(gdb) bt
#0 0x00003fffb17eeff0 in raise () from /lib64/libc.so.6
#1 0x00003fffb17f136c in abort () from /lib64/libc.so.6
#2 0x00003fffb17e4c44 in __assert_fail_base () from /lib64/libc.so.6
#3 0x00003fffb17e4d34 in __assert_fail () from /lib64/libc.so.6
#4 0x00000000100631fc in handle_copied (bs=0x42ba9ad0, guest_offset=
at block/qcow2-
#5 0x0000000010064118 in qcow2_alloc_
at block/qcow2-
#6 0x000000001004d3f4 in qcow2_co_pwritev (bs=0x42ba9ad0, offset=4194304, bytes=2703360, qiov=0x3fffc7cc
#7 0x00000000100a9648 in bdrv_driver_pwritev (bs=0x42ba9ad0, offset=4105728, bytes=2791936, qiov=0x3fffc7cc
#8 0x00000000100ab630 in bdrv_aligned_
at block/io.c:1440
#9 0x00000000100ac4ac in bdrv_co_pwritev (child=0x42bb8250, offset=4105728, bytes=2791936, qiov=0x3fffc7cc
#10 0x000000001008da0c in blk_co_pwritev (blk=0x42b99410, offset=4105728, bytes=2791936, qiov=0x3fffc7cc
#11 0x000000001008db68 in blk_write_entry (opaque=
#12 0x00000000101aa444 in coroutine_
#13 0x00003fffb1802b9c in makecontext () from /lib64/libc.so.6
#14 0x0000000000000000 in ?? ()
(gdb) bt full
#0 0x00003fffb17eeff0 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00003fffb17f136c in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x00003fffb17e4c44 in __assert_fail_base () from /lib64/libc.so.6
No symbol table info available.
#3 0x00003fffb17e4d34 in __assert_fail () from /lib64/libc.so.6
No symbol table info available.
#4 0x00000000100631fc in handle_copied (bs=0x42ba9ad0, guest_offset=
at block/qcow2-
s = 0x42bb5d80
l2_index = 0
l2_table = 0x0
nb_clusters = 1119575424
ret = 0
#5 0x0000000010064118 in qcow2_alloc_
at block/qcow2-
s = 0x42bb5d80
start = 4210688
remaining = 2686976
cur_bytes = 2686976
ret = 0
#6 0x000000001004d3f4 in qcow2_co_pwritev (bs=0x42ba9ad0, offset=4194304, bytes=2703360, qiov=0x3fffc7cc
s = 0x42bb5d80
ret = 0
cur_bytes = 2703360
hd_qiov = {iov = 0x42b74fb0, niov = 1, nalloc = 1, size = 16384}
bytes_done = 88576
l2meta = 0x42bb5d20
#7 0x00000000100a9648 in bdrv_driver_pwritev (bs=0x42ba9ad0, offset=4105728, bytes=2791936, qiov=0x3fffc7cc
drv = 0x102036f0 <bdrv_qcow2>
sector_num = 1119538320
nb_sectors = 2841469356
ret = 2116577536
#8 0x00000000100ab630 in bdrv_aligned_
at block/io.c:1440
bs = 0x42ba9ad0
drv = 0x102036f0 <bdrv_qcow2>
waited = false
ret = 0
---Type <return> to continue, or q <return> to quit---
end_sector = 13472
#9 0x00000000100ac4ac in bdrv_co_pwritev (child=0x42bb8250, offset=4105728, bytes=2791936, qiov=0x3fffc7cc
bs = 0x42ba9ad0
req = {bs = 0x42ba9ad0, offset = 4105728, bytes = 2791936, type = BDRV_TRACKED_WRITE, serialising = false, overlap_offset = 4105728,
align = 1
head_buf = 0x0
tail_buf = 0x0
local_qiov = {iov = 0x3fffaf4bfdb0, niov = -1353974288, nalloc = 16383, size = 4105728}
ret = 0
#10 0x000000001008da0c in blk_co_pwritev (blk=0x42b99410, offset=4105728, bytes=2791936, qiov=0x3fffc7cc
ret = 0
bs = 0x42ba9ad0
#11 0x000000001008db68 in blk_write_entry (opaque=
rwco = 0x3fffc7cc9ef8
#12 0x00000000101aa444 in coroutine_
arg = {p = 0x42bb50b0, i = {1119572144, 0}}
self = 0x42bb50b0
co = 0x42bb50b0
#13 0x00003fffb1802b9c in makecontext () from /lib64/libc.so.6
No symbol table info available.
#14 0x0000000000000000 in ?? ()
No symbol table info available.
will attach images_fuzzer image.
Fix has been released with QEMU 2.11: /git.qemu. org/?p= qemu.git; a=commitdiff; h=93bbaf03ff7fd 490e82
https:/