All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sagi Grimberg <sagi@grimberg.me>
To: Hannes Reinecke <hare@suse.de>
Cc: Christoph Hellwig <hch@lst.de>, Keith Busch <kbusch@kernel.org>,
	"linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>
Subject: Re: Another wierd deadlock with nvme-tcp
Date: Sun, 31 Oct 2021 13:55:51 +0200	[thread overview]
Message-ID: <01be4f20-0722-42a5-ab2f-6858cc8d1a43@grimberg.me> (raw)
In-Reply-To: <4e06ce06-118e-2f67-8acc-e08fd58b7cbd@suse.de>


> Hi Sagi,

Hey Hannes, thanks for reporting.

> and I've run into another weird deadlock; this time it's nvme-tcp not
> flushing timed out commands when deleting the controller:
> 
> [ 1685.982355] nvme nvme0: Removing ctrl: NQN
> "nqn.2014-08.org.nvmexpress:uuid:62f37f51-0cc7-46d5-9865-4de22e81bd9d"
> [ 1688.533746] nvme nvme0: queue 2: timeout request 0x72 type 4

So in this case, nvme_tcp_timeout() should complete the request
as the ctrl->state is for sure not LIVE.

In this case we should complete the requests with
NVME_SC_HOST_ABORTED_CMD - worth checking.

Also, this means that in the completion path it is expected
that nvme_decide_disposition() will return FAILOVER as
REQ_NVME_MPATH is set and the status should make nvme_is_path_error()
eval to true - worth checking.

> [ 1688.533781] nvme nvme0: failed to send request -104

In this case (-EPIPE and -ECONNRESET), nvme-tcp will complete the
command with NVME_SC_HOST_PATH_ERROR, which is also a path error
so the same behavior should happen - worth checking.


      reply	other threads:[~2021-10-31 11:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-29 12:04 Another wierd deadlock with nvme-tcp Hannes Reinecke
2021-10-31 11:55 ` Sagi Grimberg [this message]

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=01be4f20-0722-42a5-ab2f-6858cc8d1a43@grimberg.me \
    --to=sagi@grimberg.me \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=linux-nvme@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.