qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] iotests: 30: drop from auto group (and effectively from make


From: Claudio Fontana
Subject: Re: [PATCH] iotests: 30: drop from auto group (and effectively from make check)
Date: Fri, 5 Feb 2021 12:15:30 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0

Just in case it helps,

I started getting this error only when I rebased to latest master a couple days 
ago, after regular rebasing and testing with full make check every 1 or 2 days.

Ciao,

Claudio


On 2/5/21 12:10 PM, Vladimir Sementsov-Ogievskiy wrote:
> I reproduced the following crash fast enough:
> 
> 0  raise () at /lib64/libc.so.6
> 1  abort () at /lib64/libc.so.6
> 2  _nl_load_domain.cold () at /lib64/libc.so.6
> 3  annobin_assert.c_end () at /lib64/libc.so.6
> 4  bdrv_reopen_multiple (bs_queue=0x55de75fa9b70, errp=0x0)
>    at ../block.c:3820
> 5  bdrv_reopen_set_read_only (bs=0x55de760fc020, read_only=true,
>    errp=0x0) at ../block.c:3870
> 6  stream_clean (job=0x55de75fa9410) at ../block/stream.c:99
> 7  job_clean (job=0x55de75fa9410) at ../job.c:680
> 8  job_finalize_single (job=0x55de75fa9410) at ../job.c:696
> 9  job_txn_apply (job=0x55de75fa9410,
>    fn=0x55de741eee27 <job_finalize_single>) at ../job.c:158
> 10 job_do_finalize (job=0x55de75fa9410) at ../job.c:805
> 11 job_completed_txn_success (job=0x55de75fa9410) at ../job.c:855
> 12 job_completed (job=0x55de75fa9410) at ../job.c:868
> 13 job_exit (opaque=0x55de75fa9410) at ../job.c:888
> 14 aio_bh_call (bh=0x55de76b9b4e0) at ../util/async.c:136
> 15 aio_bh_poll (ctx=0x55de75bc5300) at ../util/async.c:164
> 16 aio_dispatch (ctx=0x55de75bc5300) at ../util/aio-posix.c:381
> 17 aio_ctx_dispatch (source=0x55de75bc5300, callback=0x0,
>    user_data=0x0) at ../util/async.c:306
> 18 g_main_context_dispatch () at /lib64/libglib-2.0.so.0
> 19 glib_pollfds_poll () at ../util/main-loop.c:232
> 20 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:255
> 21 main_loop_wait (nonblocking=0) at ../util/main-loop.c:531
> 22 qemu_main_loop () at ../softmmu/runstate.c:722
> 23 main (argc=20, argv=0x7ffe218f0268, envp=0x7ffe218f0310) at
>    ../softmmu/main.c:50
> 
> (gdb) fr 4
> 4  bdrv_reopen_multiple (bs_queue=0x55de75fa9b70, errp=0x0) at
>       ../block.c:3820
> 3820                assert(perm == state->perm);
> (gdb) list
> 3815
> 3816            if (ret == 0) {
> 3817                uint64_t perm, shared;
> 3818
> 3819                bdrv_get_cumulative_perm(state->bs, &perm,
>                     &shared);
> 3820                assert(perm == state->perm);
> 3821                assert(shared == state->shared_perm);
> 3822
> 3823                bdrv_set_perm(state->bs);
> 3824            } else {
> (gdb) p perm
> $1 = 1
> (gdb) p state->perm
> $2 = 0
> 
> Then I had 38 successful iterations and another crash:
> 0  bdrv_check_update_perm (bs=0x5631ac97bc50, q=0x0, new_used_perm=1,
>    new_shared_perm=31, ignore_children=0x0, errp=0x7ffd9d477cf8) at
>    ../block.c:2197
> 1  bdrv_root_attach_child
>     (child_bs=0x5631ac97bc50, child_name=0x5631aaf6b1f9 "backing",
>     child_class=0x5631ab280ca0 <child_of_bds>, child_role=8,
>     ctx=0x5631ab757300, perm=1, shared_perm=31, opaque=0x5631abb8c020,
>     errp=0x7ffd9d477cf8)
>     at ../block.c:2642
> 2  bdrv_attach_child (parent_bs=0x5631abb8c020,
>    child_bs=0x5631ac97bc50, child_name=0x5631aaf6b1f9 "backing",
>    child_class=0x5631ab280ca0 <child_of_bds>, child_role=8,
>    errp=0x7ffd9d477cf8)
>     at ../block.c:2719
> 3  bdrv_set_backing_hd (bs=0x5631abb8c020, backing_hd=0x5631ac97bc50,
>    errp=0x7ffd9d477cf8) at ../block.c:2854
> 4  stream_prepare (job=0x5631ac751eb0) at ../block/stream.c:74
> 5  job_prepare (job=0x5631ac751eb0) at ../job.c:784
> 6  job_txn_apply (job=0x5631ac751eb0, fn=0x5631aacb1156 <job_prepare>)
>    at ../job.c:158
> 7  job_do_finalize (job=0x5631ac751eb0) at ../job.c:801
> 8  job_completed_txn_success (job=0x5631ac751eb0) at ../job.c:855
> 9  job_completed (job=0x5631ac751eb0) at ../job.c:868
> 10 job_exit (opaque=0x5631ac751eb0) at ../job.c:888
> 11 aio_bh_call (bh=0x7f3d9c007680) at ../util/async.c:136
> 12 aio_bh_poll (ctx=0x5631ab757300) at ../util/async.c:164
> 13 aio_dispatch (ctx=0x5631ab757300) at ../util/aio-posix.c:381
> 14 aio_ctx_dispatch (source=0x5631ab757300, callback=0x0,
>    user_data=0x0) at ../util/async.c:306
> 15 g_main_context_dispatch () at /lib64/libglib-2.0.so.0
> 16 glib_pollfds_poll () at ../util/main-loop.c:232
> 17 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:255
> 18 main_loop_wait (nonblocking=0) at ../util/main-loop.c:531
> 19 qemu_main_loop () at ../softmmu/runstate.c:722
> 20 main (argc=20, argv=0x7ffd9d478198, envp=0x7ffd9d478240) at
>    ../softmmu/main.c:50
> (gdb) list
> 2192        QLIST_FOREACH(c, &bs->parents, next_parent) {
> 2193            if (g_slist_find(ignore_children, c)) {
> 2194                continue;
> 2195            }
> 2196
> 2197            if ((new_used_perm & c->shared_perm) != new_used_perm)
>                 {
> 2198                char *user = bdrv_child_user_desc(c);
> 2199                char *perm_names = bdrv_perm_names(new_used_perm &
>                     ~c->shared_perm);
> 2200
> 2201                error_setg(errp, "Conflicts with use by %s as '%s',
>                     which does not "
> (gdb) p c
> $1 = (BdrvChild *) 0x8585858585858585
> 
> and trying to reproduce it on top of
> "block: update graph permissions update" I had 634 successful
> iterations
> and then the following crash (which looks much better):
> 0  raise () at /lib64/libc.so.6
> 1  abort () at /lib64/libc.so.6
> 2  _nl_load_domain.cold () at /lib64/libc.so.6
> 3  annobin_assert.c_end () at /lib64/libc.so.6
> 4  bdrv_replace_child_noperm (child=0x5585bb632010,
>    new_bs=0x5585bc4f42a0) at ../block.c:2589
> 5  bdrv_replace_child (child=0x5585bb632010, new_bs=0x5585bc4f42a0,
>    tran=0x7fff5a14d8e0) at ../block.c:2211
> 6  bdrv_set_backing_noperm (bs=0x5585bb704020,
>    backing_bs=0x5585bc4f42a0, tran=0x7fff5a14d8e0, errp=0x7fff5a14d918)
>    at ../block.c:3030
> 7  bdrv_set_backing_hd (bs=0x5585bb704020, backing_hd=0x5585bc4f42a0,
>    errp=0x7fff5a14d918) at ../block.c:3072
> 8  stream_prepare (job=0x5585bc2ef230) at ../block/stream.c:74
> 9  job_prepare (job=0x5585bc2ef230) at ../job.c:784
> 10 job_txn_apply (job=0x5585bc2ef230, fn=0x5585ba638ad0 <job_prepare>)
>    at ../job.c:158
> 11 job_do_finalize (job=0x5585bc2ef230) at ../job.c:801
> 12 job_completed_txn_success (job=0x5585bc2ef230) at ../job.c:855
> 13 job_completed (job=0x5585bc2ef230) at ../job.c:868
> 14 job_exit (opaque=0x5585bc2ef230) at ../job.c:888
> 15 aio_bh_call (bh=0x7f62b8004270) at ../util/async.c:136
> 16 aio_bh_poll (ctx=0x5585bb2ce4a0) at ../util/async.c:164
> 17 aio_dispatch (ctx=0x5585bb2ce4a0) at ../util/aio-posix.c:381
> 18 aio_ctx_dispatch (source=0x5585bb2ce4a0, callback=0x0,
>    user_data=0x0) at ../util/async.c:306
> 19 g_main_context_dispatch () at /lib64/libglib-2.0.so.0
> 20 glib_pollfds_poll () at ../util/main-loop.c:232
> 21 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:255
> 22 main_loop_wait (nonblocking=0) at ../util/main-loop.c:531
> 23 qemu_main_loop () at ../softmmu/runstate.c:722
> 24 main (argc=20, argv=0x7fff5a14ddb8, envp=0x7fff5a14de60) at
>    ../softmmu/main.c:50
> 
> (gdb) fr 4
> 4  bdrv_replace_child_noperm (child=0x5585bb632010,
>    new_bs=0x5585bc4f42a0) at ../block.c:2589
> 2589            assert(bdrv_get_aio_context(old_bs) ==
>                 bdrv_get_aio_context(new_bs));
> (gdb) list
> 2584        int drain_saldo;
> 2585
> 2586        assert(!child->frozen);
> 2587
> 2588        if (old_bs && new_bs) {
> 2589            assert(bdrv_get_aio_context(old_bs) ==
>                 bdrv_get_aio_context(new_bs));
> 2590        }
> 2591
> 2592        new_bs_quiesce_counter = (new_bs ? new_bs->quiesce_counter
>             : 0);
> 2593        drain_saldo = new_bs_quiesce_counter -
>             child->parent_quiesce_counter;
> 
> So it seems reasonable to drop test from auto group at least until we
> merge "block: update graph permissions update"
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
> 
> Note: be free to shorten commit message if needed :)
> 
>  tests/qemu-iotests/030 | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
> index 832fe4a1e2..12aa9ed37e 100755
> --- a/tests/qemu-iotests/030
> +++ b/tests/qemu-iotests/030
> @@ -1,5 +1,5 @@
>  #!/usr/bin/env python3
> -# group: rw auto backing
> +# group: rw backing
>  #
>  # Tests for image streaming.
>  #
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]