Am 09.12.2022 um 17:53 hat Paolo Bonzini geschrieben: > On 11/18/22 18:41, Kevin Wolf wrote: > > In order to make sure that bdrv_replace_child_noperm() doesn't have to > > poll any more, get rid of the bdrv_parent_drained_begin_single() call. > > > > This is possible now because we can require that the parent is already > > drained through the child in question when the function is called and we > > don't call the parent drain callbacks more than once. > > > > The additional drain calls needed in callers cause the test case to run > > its code in the drain handler too early (bdrv_attach_child() drains > > now), so modify it to only enable the code after the test setup has > > completed. > > > > Signed-off-by: Kevin Wolf<kw...@redhat.com> > > I hate to bear bad news, but this breaks the Windows builds on github > (msys-32bit, msys-64bit) with an obscure but 100% reproducible > > 51/88 qemu:unit / test-bdrv-drain ERROR 1.30s (exit status > 3221225477 or signal 3221225349 SIGinvalid) > > The exit status is 0xC0000005 aka a Windows SIGSEGV. With some luck it > could be reproducible with Wine (but no gdb).
I can reproduce it with mingw+wine (and actually gdb! Still a somewhat limited debugging environment, but not as bad as I imagined.) I looks to me like this is a problem with the test case rather than the change per se. It seems to be fixed with this patch that is already posted as part of the next series: [PATCH 09/18] test-bdrv-drain: Fix incorrrect drain assumptions https://lists.gnu.org/archive/html/qemu-block/2022-12/msg00165.html Kevin