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.
Thanks.
On Tue, Apr 11, 2017 at 4:21 PM, Lidong Chen <email address hidden> wrote:
> blk->root->perm is 1 when blk_new_open.
>
> the blk->root->perm is update to 3 during virtio_blk_device_realize.
>
> but after this commit, the blk->root->perm is still 1. and cause
> bdrv_aligned_pwritev failed.
>
> Breakpoint 1, blk_set_perm (blk=0x14c32b0, perm=3, shared_perm=29, errp=0x7fffffffd380) at block/block-backend.c:579
> 579 {
> (gdb) bt
> #0 blk_set_perm (blk=0x14c32b0, perm=3, shared_perm=29, errp=0x7fffffffd380) at block/block-backend.c:579
> #1 0x000000000063484b in blkconf_apply_backend_options (conf=0x2de7fd0, readonly=false, resizable=true, errp=0x7fffffffd380) at hw/block/block.c:77
> #2 0x00000000004a57bd in virtio_blk_device_realize (dev=0x2de7e30, errp=0x7fffffffd3e0) at /data/qemu/hw/block/virtio-blk.c:931
> #3 0x00000000004f688e in virtio_device_realize (dev=0x2de7e30, errp=0x7fffffffd468) at /data/qemu/hw/virtio/virtio.c:2485
> #4 0x000000000065806f in device_set_realized (obj=0x2de7e30, value=true, errp=0x7fffffffd6d8) at hw/core/qdev.c:939
> #5 0x000000000083aaf5 in property_set_bool (obj=0x2de7e30, v=0x2e67a90, name=0xaf4b53 "realized", opaque=0x2de9660, errp=0x7fffffffd6d8) at qom/object.c:1860
> #6 0x0000000000838c46 in object_property_set (obj=0x2de7e30, v=0x2e67a90, name=0xaf4b53 "realized", errp=0x7fffffffd6d8) at qom/object.c:1094
> #7 0x000000000083c23f in object_property_set_qobject (obj=0x2de7e30, value=0x2e679e0, name=0xaf4b53 "realized", errp=0x7fffffffd6d8) at qom/qom-qobject.c:27
> #8 0x0000000000838f9a in object_property_set_bool (obj=0x2de7e30, value=true, name=0xaf4b53 "realized", errp=0x7fffffffd6d8) at qom/object.c:1163
> #9 0x00000000007bafac in virtio_blk_pci_realize (vpci_dev=0x2ddf920, errp=0x7fffffffd6d8) at hw/virtio/virtio-pci.c:1975
> #10 0x00000000007ba966 in virtio_pci_realize (pci_dev=0x2ddf920, errp=0x7fffffffd6d8) at hw/virtio/virtio-pci.c:1853
> #11 0x000000000071e439 in pci_qdev_realize (qdev=0x2ddf920, errp=0x7fffffffd7b8) at hw/pci/pci.c:2001
> #12 0x00000000007badaa in virtio_pci_dc_realize (qdev=0x2ddf920, errp=0x7fffffffd7b8) at hw/virtio/virtio-pci.c:1930
> #13 0x000000000065806f in device_set_realized (obj=0x2ddf920, value=true, errp=0x7fffffffd9a8) at hw/core/qdev.c:939
> #14 0x000000000083aaf5 in property_set_bool (obj=0x2ddf920, v=0x2decfd0, name=0x9b2c0e "realized", opaque=0x2ddf5d0, errp=0x7fffffffd9a8) at qom/object.c:1860
> #15 0x0000000000838c46 in object_property_set (obj=0x2ddf920, v=0x2decfd0, name=0x9b2c0e "realized", errp=0x7fffffffd9a8) at qom/object.c:1094
> #16 0x000000000083c23f in object_property_set_qobject (obj=0x2ddf920, value=0x2dece90, name=0x9b2c0e "realized", errp=0x7fffffffd9a8) at qom/qom-qobject.c:27
> #17 0x0000000000838f9a in object_property_set_bool (obj=0x2ddf920, value=true, name=0x9b2c0e "realized", errp=0x7fffffffd9a8) at qom/object.c:1163
> #18 0x00000000005bfcea in qdev_device_add (opts=0x1451320, errp=0x7fffffffda30) at qdev-monitor.c:624
> #19 0x00000000005c9662 in device_init_func (opaque=0x0, opts=0x1451320, errp=0x0) at vl.c:2305
> #20 0x000000000095f491 in qemu_opts_foreach (list=0xe5bd80, func=0x5c9624 <device_init_func>, opaque=0x0, errp=0x0) at util/qemu-option.c:1114
> #21 0x00000000005ce9be in main (argc=46, argv=0x7fffffffdeb8, envp=0x7fffffffe030) at vl.c:4583
>
> --
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https://bugs.launchpad.net/bugs/1681688
>
> Title:
> qemu live migration failed
>
> Status in QEMU:
> New
>
> Bug description:
> qemu live migration failed
>
> the dest qemu report this error.
>
> Receiving block device images
> Completed 0 %^Mqemu-system-x86_64: block/io.c:1348: bdrv_aligned_pwritev: Assertion `child->perm & BLK_PERM_WRITE' failed.
>
> this bug is caused by this patch:
> http://git.qemu-project.org/?p=qemu.git;a=commit;h=d35ff5e6b3aa3a706b0aa3bcf11400fac945b67a
>
> rollback this commit, the problem solved.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1681688/+subscriptions
>
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. apply_backend_ options don't update the
but after apply this patch, blkconf_
blk->root->perm.
Thanks.
On Tue, Apr 11, 2017 at 4:21 PM, Lidong Chen <email address hidden> wrote: blk_device_ realize. pwritev failed. d380) at block/block- backend. c:579 d380) at block/block- backend. c:579 apply_backend_ options (conf=0x2de7fd0, readonly=false, resizable=true, errp=0x7fffffff d380) at hw/block/block.c:77 blk_device_ realize (dev=0x2de7e30, errp=0x7fffffff d3e0) at /data/qemu/ hw/block/ virtio- blk.c:931 device_ realize (dev=0x2de7e30, errp=0x7fffffff d468) at /data/qemu/ hw/virtio/ virtio. c:2485 d6d8) at hw/core/qdev.c:939 d6d8) at qom/object.c:1860 d6d8) at qom/object.c:1094 property_ set_qobject (obj=0x2de7e30, value=0x2e679e0, name=0xaf4b53 "realized", errp=0x7fffffff d6d8) at qom/qom- qobject. c:27 property_ set_bool (obj=0x2de7e30, value=true, name=0xaf4b53 "realized", errp=0x7fffffff d6d8) at qom/object.c:1163 blk_pci_ realize (vpci_dev= 0x2ddf920, errp=0x7fffffff d6d8) at hw/virtio/ virtio- pci.c:1975 d6d8) at hw/virtio/ virtio- pci.c:1853 d7b8) at hw/pci/pci.c:2001 pci_dc_ realize (qdev=0x2ddf920, errp=0x7fffffff d7b8) at hw/virtio/ virtio- pci.c:1930 d9a8) at hw/core/qdev.c:939 d9a8) at qom/object.c:1860 d9a8) at qom/object.c:1094 property_ set_qobject (obj=0x2ddf920, value=0x2dece90, name=0x9b2c0e "realized", errp=0x7fffffff d9a8) at qom/qom- qobject. c:27 property_ set_bool (obj=0x2ddf920, value=true, name=0x9b2c0e "realized", errp=0x7fffffff d9a8) at qom/object.c:1163 da30) at qdev-monitor.c:624 option. c:1114 deb8, envp=0x7fffffff e030) at vl.c:4583 /bugs.launchpad .net/bugs/ 1681688 system- x86_64: block/io.c:1348: bdrv_aligned_ pwritev: Assertion `child->perm & BLK_PERM_WRITE' failed. git.qemu- project. org/?p= qemu.git; a=commit; h=d35ff5e6b3aa3 a706b0aa3bcf114 00fac945b67a /bugs.launchpad .net/qemu/ +bug/1681688/ +subscriptions
> blk->root->perm is 1 when blk_new_open.
>
> the blk->root->perm is update to 3 during virtio_
>
> but after this commit, the blk->root->perm is still 1. and cause
> bdrv_aligned_
>
> Breakpoint 1, blk_set_perm (blk=0x14c32b0, perm=3, shared_perm=29, errp=0x7fffffff
> 579 {
> (gdb) bt
> #0 blk_set_perm (blk=0x14c32b0, perm=3, shared_perm=29, errp=0x7fffffff
> #1 0x000000000063484b in blkconf_
> #2 0x00000000004a57bd in virtio_
> #3 0x00000000004f688e in virtio_
> #4 0x000000000065806f in device_set_realized (obj=0x2de7e30, value=true, errp=0x7fffffff
> #5 0x000000000083aaf5 in property_set_bool (obj=0x2de7e30, v=0x2e67a90, name=0xaf4b53 "realized", opaque=0x2de9660, errp=0x7fffffff
> #6 0x0000000000838c46 in object_property_set (obj=0x2de7e30, v=0x2e67a90, name=0xaf4b53 "realized", errp=0x7fffffff
> #7 0x000000000083c23f in object_
> #8 0x0000000000838f9a in object_
> #9 0x00000000007bafac in virtio_
> #10 0x00000000007ba966 in virtio_pci_realize (pci_dev=0x2ddf920, errp=0x7fffffff
> #11 0x000000000071e439 in pci_qdev_realize (qdev=0x2ddf920, errp=0x7fffffff
> #12 0x00000000007badaa in virtio_
> #13 0x000000000065806f in device_set_realized (obj=0x2ddf920, value=true, errp=0x7fffffff
> #14 0x000000000083aaf5 in property_set_bool (obj=0x2ddf920, v=0x2decfd0, name=0x9b2c0e "realized", opaque=0x2ddf5d0, errp=0x7fffffff
> #15 0x0000000000838c46 in object_property_set (obj=0x2ddf920, v=0x2decfd0, name=0x9b2c0e "realized", errp=0x7fffffff
> #16 0x000000000083c23f in object_
> #17 0x0000000000838f9a in object_
> #18 0x00000000005bfcea in qdev_device_add (opts=0x1451320, errp=0x7fffffff
> #19 0x00000000005c9662 in device_init_func (opaque=0x0, opts=0x1451320, errp=0x0) at vl.c:2305
> #20 0x000000000095f491 in qemu_opts_foreach (list=0xe5bd80, func=0x5c9624 <device_init_func>, opaque=0x0, errp=0x0) at util/qemu-
> #21 0x00000000005ce9be in main (argc=46, argv=0x7fffffff
>
> --
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https:/
>
> Title:
> qemu live migration failed
>
> Status in QEMU:
> New
>
> Bug description:
> qemu live migration failed
>
> the dest qemu report this error.
>
> Receiving block device images
> Completed 0 %^Mqemu-
>
> this bug is caused by this patch:
> http://
>
> rollback this commit, the problem solved.
>
> To manage notifications about this bug go to:
> https:/
>