qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@gmail.com>
To: Bug 1836855 <1836855@bugs.launchpad.net>
Cc: Kevin Wolf <kwolf@redhat.com>, Alberto Garcia <berto@igalia.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Bug 1836855] [NEW] virtio_scsi_ctx_check failed when detach virtio_scsi disk
Date: Fri, 19 Jul 2019 10:47:58 +0100	[thread overview]
Message-ID: <20190719094758.GD18585@stefanha-x1.localdomain> (raw)
In-Reply-To: <156335163555.1137.2433837611161042870.malonedeb@gac.canonical.com>

[-- Attachment #1: Type: text/plain, Size: 5139 bytes --]

On Wed, Jul 17, 2019 at 08:20:35AM -0000, 贞贵李 wrote:
> Public bug reported:
> 
> I found a problem  that virtio_scsi_ctx_check  failed when detaching
> virtio_scsi disk.  The  bt is below:
> 
> (gdb) bt
> #0  0x0000ffffb02e1bd0 in raise () from /lib64/libc.so.6
> #1  0x0000ffffb02e2f7c in abort () from /lib64/libc.so.6
> #2  0x0000ffffb02db124 in __assert_fail_base () from /lib64/libc.so.6
> #3  0x0000ffffb02db1a4 in __assert_fail () from /lib64/libc.so.6
> #4  0x00000000004eb9a8 in virtio_scsi_ctx_check (d=d@entry=0xc70d790, s=<optimized out>, s=<optimized out>)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:243
> #5  0x00000000004ec87c in virtio_scsi_handle_cmd_req_prepare (s=s@entry=0xd27a7a0, req=req@entry=0xafc4b90)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:553
> #6  0x00000000004ecc20 in virtio_scsi_handle_cmd_vq (s=0xd27a7a0, vq=0xd283410)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:588
> #7  0x00000000004eda20 in virtio_scsi_data_plane_handle_cmd (vdev=0x0, vq=0xffffae7a6f98)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi-dataplane.c:57
> #8  0x0000000000877254 in aio_dispatch (ctx=0xac61010) at util/aio-posix.c:323
> #9  0x00000000008773ec in aio_poll (ctx=0xac61010, blocking=true) at util/aio-posix.c:472
> #10 0x00000000005cd7cc in iothread_run (opaque=0xac5e4b0) at iothread.c:49
> #11 0x000000000087a8b8 in qemu_thread_start (args=0xac61360) at util/qemu-thread-posix.c:495
> #12 0x00000000008a04e8 in thread_entry_for_hotfix (pthread_cb=0x0) at uvp/hotpatch/qemu_hotpatch_helper.c:579
> #13 0x0000ffffb041c8bc in start_thread () from /lib64/libpthread.so.0
> #14 0x0000ffffb0382f8c in thread_start () from /lib64/libc.so.6
> 
> assert(blk_get_aio_context(d->conf.blk) == s->ctx)  failed.
> 
> I think this patch
> (https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b)
> introduce this problem.
> 
> commit a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b  move blockbackend back
> to main AioContext on unplug. It set the AioContext of
> 
> SCSIDevice  to the main AioContex, but s->ctx is still the iothread
> AioContext.  Is this a bug?

The backtrace shows that virtqueue processing is happening in the
IOThread.  This is expected so now the question is why the
BlockBackend's AioContext is the main AioContext.

Can you share steps for reproducing this bug?

Thanks!

> ** Affects: qemu
>      Importance: Undecided
>          Status: New
> 
> -- 
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https://bugs.launchpad.net/bugs/1836855
> 
> Title:
>   virtio_scsi_ctx_check failed when detach virtio_scsi disk
> 
> Status in QEMU:
>   New
> 
> Bug description:
>   I found a problem  that virtio_scsi_ctx_check  failed when detaching
>   virtio_scsi disk.  The  bt is below:
> 
>   (gdb) bt
>   #0  0x0000ffffb02e1bd0 in raise () from /lib64/libc.so.6
>   #1  0x0000ffffb02e2f7c in abort () from /lib64/libc.so.6
>   #2  0x0000ffffb02db124 in __assert_fail_base () from /lib64/libc.so.6
>   #3  0x0000ffffb02db1a4 in __assert_fail () from /lib64/libc.so.6
>   #4  0x00000000004eb9a8 in virtio_scsi_ctx_check (d=d@entry=0xc70d790, s=<optimized out>, s=<optimized out>)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:243
>   #5  0x00000000004ec87c in virtio_scsi_handle_cmd_req_prepare (s=s@entry=0xd27a7a0, req=req@entry=0xafc4b90)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:553
>   #6  0x00000000004ecc20 in virtio_scsi_handle_cmd_vq (s=0xd27a7a0, vq=0xd283410)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:588
>   #7  0x00000000004eda20 in virtio_scsi_data_plane_handle_cmd (vdev=0x0, vq=0xffffae7a6f98)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi-dataplane.c:57
>   #8  0x0000000000877254 in aio_dispatch (ctx=0xac61010) at util/aio-posix.c:323
>   #9  0x00000000008773ec in aio_poll (ctx=0xac61010, blocking=true) at util/aio-posix.c:472
>   #10 0x00000000005cd7cc in iothread_run (opaque=0xac5e4b0) at iothread.c:49
>   #11 0x000000000087a8b8 in qemu_thread_start (args=0xac61360) at util/qemu-thread-posix.c:495
>   #12 0x00000000008a04e8 in thread_entry_for_hotfix (pthread_cb=0x0) at uvp/hotpatch/qemu_hotpatch_helper.c:579
>   #13 0x0000ffffb041c8bc in start_thread () from /lib64/libpthread.so.0
>   #14 0x0000ffffb0382f8c in thread_start () from /lib64/libc.so.6
> 
>   assert(blk_get_aio_context(d->conf.blk) == s->ctx)  failed.
> 
>   I think this patch
>   (https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b)
>   introduce this problem.
> 
>   commit a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b  move blockbackend
>   back to main AioContext on unplug. It set the AioContext of
> 
>   SCSIDevice  to the main AioContex, but s->ctx is still the iothread
>   AioContext.  Is this a bug?
> 
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1836855/+subscriptions
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Stefan Hajnoczi <1836855@bugs.launchpad.net>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Bug 1836855] [NEW] virtio_scsi_ctx_check failed when detach virtio_scsi disk
Date: Fri, 19 Jul 2019 09:47:58 -0000	[thread overview]
Message-ID: <20190719094758.GD18585@stefanha-x1.localdomain> (raw)
Message-ID: <20190719094758.K4mlcqa5s5UmJ6gCXoHVplKtNULoC_fGGnv_Vr2weAU@z> (raw)
In-Reply-To: 156335163555.1137.2433837611161042870.malonedeb@gac.canonical.com

On Wed, Jul 17, 2019 at 08:20:35AM -0000, 贞贵李 wrote:
> Public bug reported:
> 
> I found a problem  that virtio_scsi_ctx_check  failed when detaching
> virtio_scsi disk.  The  bt is below:
> 
> (gdb) bt
> #0  0x0000ffffb02e1bd0 in raise () from /lib64/libc.so.6
> #1  0x0000ffffb02e2f7c in abort () from /lib64/libc.so.6
> #2  0x0000ffffb02db124 in __assert_fail_base () from /lib64/libc.so.6
> #3  0x0000ffffb02db1a4 in __assert_fail () from /lib64/libc.so.6
> #4  0x00000000004eb9a8 in virtio_scsi_ctx_check (d=d@entry=0xc70d790, s=<optimized out>, s=<optimized out>)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:243
> #5  0x00000000004ec87c in virtio_scsi_handle_cmd_req_prepare (s=s@entry=0xd27a7a0, req=req@entry=0xafc4b90)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:553
> #6  0x00000000004ecc20 in virtio_scsi_handle_cmd_vq (s=0xd27a7a0, vq=0xd283410)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:588
> #7  0x00000000004eda20 in virtio_scsi_data_plane_handle_cmd (vdev=0x0, vq=0xffffae7a6f98)
>     at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi-dataplane.c:57
> #8  0x0000000000877254 in aio_dispatch (ctx=0xac61010) at util/aio-posix.c:323
> #9  0x00000000008773ec in aio_poll (ctx=0xac61010, blocking=true) at util/aio-posix.c:472
> #10 0x00000000005cd7cc in iothread_run (opaque=0xac5e4b0) at iothread.c:49
> #11 0x000000000087a8b8 in qemu_thread_start (args=0xac61360) at util/qemu-thread-posix.c:495
> #12 0x00000000008a04e8 in thread_entry_for_hotfix (pthread_cb=0x0) at uvp/hotpatch/qemu_hotpatch_helper.c:579
> #13 0x0000ffffb041c8bc in start_thread () from /lib64/libpthread.so.0
> #14 0x0000ffffb0382f8c in thread_start () from /lib64/libc.so.6
> 
> assert(blk_get_aio_context(d->conf.blk) == s->ctx)  failed.
> 
> I think this patch
> (https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b)
> introduce this problem.
> 
> commit a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b  move blockbackend back
> to main AioContext on unplug. It set the AioContext of
> 
> SCSIDevice  to the main AioContex, but s->ctx is still the iothread
> AioContext.  Is this a bug?

The backtrace shows that virtqueue processing is happening in the
IOThread.  This is expected so now the question is why the
BlockBackend's AioContext is the main AioContext.

Can you share steps for reproducing this bug?

Thanks!

> ** Affects: qemu
>      Importance: Undecided
>          Status: New
> 
> -- 
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https://bugs.launchpad.net/bugs/1836855
> 
> Title:
>   virtio_scsi_ctx_check failed when detach virtio_scsi disk
> 
> Status in QEMU:
>   New
> 
> Bug description:
>   I found a problem  that virtio_scsi_ctx_check  failed when detaching
>   virtio_scsi disk.  The  bt is below:
> 
>   (gdb) bt
>   #0  0x0000ffffb02e1bd0 in raise () from /lib64/libc.so.6
>   #1  0x0000ffffb02e2f7c in abort () from /lib64/libc.so.6
>   #2  0x0000ffffb02db124 in __assert_fail_base () from /lib64/libc.so.6
>   #3  0x0000ffffb02db1a4 in __assert_fail () from /lib64/libc.so.6
>   #4  0x00000000004eb9a8 in virtio_scsi_ctx_check (d=d@entry=0xc70d790, s=<optimized out>, s=<optimized out>)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:243
>   #5  0x00000000004ec87c in virtio_scsi_handle_cmd_req_prepare (s=s@entry=0xd27a7a0, req=req@entry=0xafc4b90)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:553
>   #6  0x00000000004ecc20 in virtio_scsi_handle_cmd_vq (s=0xd27a7a0, vq=0xd283410)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:588
>   #7  0x00000000004eda20 in virtio_scsi_data_plane_handle_cmd (vdev=0x0, vq=0xffffae7a6f98)
>       at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi-dataplane.c:57
>   #8  0x0000000000877254 in aio_dispatch (ctx=0xac61010) at util/aio-posix.c:323
>   #9  0x00000000008773ec in aio_poll (ctx=0xac61010, blocking=true) at util/aio-posix.c:472
>   #10 0x00000000005cd7cc in iothread_run (opaque=0xac5e4b0) at iothread.c:49
>   #11 0x000000000087a8b8 in qemu_thread_start (args=0xac61360) at util/qemu-thread-posix.c:495
>   #12 0x00000000008a04e8 in thread_entry_for_hotfix (pthread_cb=0x0) at uvp/hotpatch/qemu_hotpatch_helper.c:579
>   #13 0x0000ffffb041c8bc in start_thread () from /lib64/libpthread.so.0
>   #14 0x0000ffffb0382f8c in thread_start () from /lib64/libc.so.6
> 
>   assert(blk_get_aio_context(d->conf.blk) == s->ctx)  failed.
> 
>   I think this patch
>   (https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b)
>   introduce this problem.
> 
>   commit a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b  move blockbackend
>   back to main AioContext on unplug. It set the AioContext of
> 
>   SCSIDevice  to the main AioContex, but s->ctx is still the iothread
>   AioContext.  Is this a bug?
> 
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1836855/+subscriptions
>

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1836855

Title:
  virtio_scsi_ctx_check failed when detach virtio_scsi disk

Status in QEMU:
  New

Bug description:
  I found a problem  that virtio_scsi_ctx_check  failed when detaching
  virtio_scsi disk.  The  bt is below:

  (gdb) bt
  #0  0x0000ffffb02e1bd0 in raise () from /lib64/libc.so.6
  #1  0x0000ffffb02e2f7c in abort () from /lib64/libc.so.6
  #2  0x0000ffffb02db124 in __assert_fail_base () from /lib64/libc.so.6
  #3  0x0000ffffb02db1a4 in __assert_fail () from /lib64/libc.so.6
  #4  0x00000000004eb9a8 in virtio_scsi_ctx_check (d=d@entry=0xc70d790, s=<optimized out>, s=<optimized out>)
      at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:243
  #5  0x00000000004ec87c in virtio_scsi_handle_cmd_req_prepare (s=s@entry=0xd27a7a0, req=req@entry=0xafc4b90)
      at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:553
  #6  0x00000000004ecc20 in virtio_scsi_handle_cmd_vq (s=0xd27a7a0, vq=0xd283410)
      at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi.c:588
  #7  0x00000000004eda20 in virtio_scsi_data_plane_handle_cmd (vdev=0x0, vq=0xffffae7a6f98)
      at /Images/lzg/code/710/qemu-2.8.1/hw/scsi/virtio-scsi-dataplane.c:57
  #8  0x0000000000877254 in aio_dispatch (ctx=0xac61010) at util/aio-posix.c:323
  #9  0x00000000008773ec in aio_poll (ctx=0xac61010, blocking=true) at util/aio-posix.c:472
  #10 0x00000000005cd7cc in iothread_run (opaque=0xac5e4b0) at iothread.c:49
  #11 0x000000000087a8b8 in qemu_thread_start (args=0xac61360) at util/qemu-thread-posix.c:495
  #12 0x00000000008a04e8 in thread_entry_for_hotfix (pthread_cb=0x0) at uvp/hotpatch/qemu_hotpatch_helper.c:579
  #13 0x0000ffffb041c8bc in start_thread () from /lib64/libpthread.so.0
  #14 0x0000ffffb0382f8c in thread_start () from /lib64/libc.so.6

  assert(blk_get_aio_context(d->conf.blk) == s->ctx)  failed.

  I think this patch
  (https://git.qemu.org/?p=qemu.git;a=commitdiff;h=a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b)
  introduce this problem.

  commit a6f230c8d13a7ff3a0c7f1097412f44bfd9eff0b  move blockbackend
  back to main AioContext on unplug. It set the AioContext of

  SCSIDevice  to the main AioContex, but s->ctx is still the iothread
  AioContext.  Is this a bug?

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1836855/+subscriptions


  reply	other threads:[~2019-07-19  9:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-17  8:20 [Qemu-devel] [Bug 1836855] [NEW] virtio_scsi_ctx_check failed when detach virtio_scsi disk 贞贵李
2019-07-19  9:47 ` Stefan Hajnoczi [this message]
2019-07-19  9:47   ` Stefan Hajnoczi
2021-04-22  7:07 ` [Bug 1836855] " Thomas Huth
2021-06-22  4:18 ` Launchpad Bug Tracker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190719094758.GD18585@stefanha-x1.localdomain \
    --to=stefanha@gmail.com \
    --cc=1836855@bugs.launchpad.net \
    --cc=berto@igalia.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).