On 11/04/2017 15:57, Kevin Wolf wrote:
> Am 11.04.2017 um 15:35 hat 858585 jemmy geschrieben:
>> Hi Kevin:
>> Can you provide some information about the original bug which you want
>> fix?
>>
>> the original comment:
>> Usually guest devices don't like other writers to the same image, so
>> they use blk_set_perm() to prevent this from happening.
>>
>> i don't find where the dest qemu will use blk_set_perm during migration.
>> but after apply this patch, blkconf_apply_backend_options don't update the
>> blk->root->perm.
>
> Do I understand correctly that this is not simply live migration, but
> block live migration (with 'migrate -b')?
>
> Can you please post a backtrace not of the successful case, but of the
> failing assertion?
It happens only with postcopy migration.
qemu-system-x86_64: /home/lvivier/Projects/qemu/block/io.c:1348:
bdrv_aligned_pwritev: Assertion `child->perm & BLK_PERM_WRITE' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff35061f7 in raise () from /lib64/libc.so.6
...
(gdb) bt
#0 0x00007ffff35061f7 in raise () from /lib64/libc.so.6
#1 0x00007ffff35078e8 in abort () from /lib64/libc.so.6
#2 0x00007ffff34ff266 in __assert_fail_base () from /lib64/libc.so.6
#3 0x00007ffff34ff312 in __assert_fail () from /lib64/libc.so.6
#4 0x0000555555a92d1a in bdrv_aligned_pwritev
(req=req@entry=0x7ffed02fae70,
offset=offset@entry=12424523776, bytes=12288, align=align@entry=1,
qiov=qiov@entry=0x555558601a20, flags=flags@entry=0,
child=0x555556661fb0,
child=0x555556661fb0) at /home/lvivier/Projects/qemu/block/io.c:1348
#5 0x0000555555a93906 in bdrv_co_pwritev (child=0x555556661fb0,
offset=offset@entry=12424523776, bytes=<optimized out>,
bytes@entry=12288,
qiov=qiov@entry=0x555558601a20, flags=0)
at /home/lvivier/Projects/qemu/block/io.c:1622
#6 0x0000555555a84a30 in blk_co_pwritev (blk=0x5555566565e0,
offset=12424523776, bytes=12288, qiov=0x555558601a20,
flags=<optimized out>)
at /home/lvivier/Projects/qemu/block/block-backend.c:992
#7 0x0000555555a84b4a in blk_aio_write_entry (opaque=0x55555760aba0)
at /home/lvivier/Projects/qemu/block/block-backend.c:1183
#8 0x0000555555b1639a in coroutine_trampoline (i0=<optimized out>,
i1=<optimized out>)
at /home/lvivier/Projects/qemu/util/coroutine-ucontext.c:79
#9 0x00007ffff3517d40 in ?? () from /lib64/libc.so.6
#10 0x00007fffffffcdd0 in ?? ()
---Type <return> to continue, or q <return> to quit---
#11 0x0000000000000000 in ?? ()
Laurent