On Thu, Jun 11, 2026 at 12:08 AM Michael Tokarev <[email protected]> wrote:
>
> On 03.06.2026 22:38, Fabiano Rosas wrote:
> > It's not possible to access the image file while there is an incoming
> > migration in progress, the QEMU process doesn't hold any locks to the
> > storage at this point so nodes are inactive. Attempting to flush leads
> > to an assert at bdrv_co_write_req_prepare():
> >
> >     assert(!(bs->open_flags & BDRV_O_INACTIVE))
> >
> > The issue is reproducible by running iotest 181 on a host under cpu
> > load. The migration must coincide with the header already containing
> > the QED_F_NEED_CHECK flag.
> >
> > The sequence of events is as follows, with the respective call stacks
> > referenced below:
> >
> > During block device init, bdrv_qed_attach_aio_context() starts the
> > 'need_check' timer. The timer will not fire during incoming migration
> > as it uses QEMU_CLOCK_VIRTUAL (to avoid this very issue, as the code
> > comment indicates).                                                   (0)
> >
> > However, there's still bdrv_qed_drain_begin() which uses the fact that
> > the timer is live to decide whether to start the
> > qed_need_check_timer_entry() directly.                                (1)
> >
> > The qed_need_check_timer_entry() eventually calls into
> > qed_write_header() -> bdrv_co_pwrite() leading to the assert.         (2)
> >
> > Skip creating the 'need_check' timer whenever the image is inactive.
> ...
> > Note that this issue is not exactly the same as what's been reported
> > in Gitlab, but given how easily this reproduces, I imagine it has to
> > be happening in that setup as well.
> >
> > Link: https://gitlab.com/qemu-project/qemu/-/work_items/3515
> > Signed-off-by: Fabiano Rosas <[email protected]>
> > ---
> >   block/qed.c | 16 +++++++++++-----
> >   1 file changed, 11 insertions(+), 5 deletions(-)
>
> I'm picking this one up for the active qemu-stable series.
> Dunno how popular qed is these days, though - back in the day it was
> a useful alternative to qcow2, now it feels more like a toy :)

I'm not aware of users based on the lack of bug reports and patches.

Stefan

Reply via email to