Return-Path: <owner-ips-outgoing@ece.cmu.edu>
Received: from newbox.ece.cmu.edu (localhost [127.0.0.1])
	by newbox.ece.cmu.edu (Cyrus v2.1.12) with LMTP; Wed, 06 Aug 2003 16:22:21 -0400
X-Sieve: CMU Sieve 2.2
Received: from hazard.ece.cmu.edu (HAZARD.ECE.CMU.EDU [128.2.129.24])
	by newbox.ece.cmu.edu (Postfix) with ESMTP id 0BEC02FF1
	for <ipsml@ece.cmu.edu>; Wed,  6 Aug 2003 16:22:21 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id 93F4EF3; Wed,  6 Aug 2003 16:22:20 -0400 (EDT)
Received: from sos.ece.cmu.edu (SOS.ECE.CMU.EDU [128.2.129.27])
	by hazard.ece.cmu.edu (Postfix) with ESMTP
	id 8079BCA; Wed,  6 Aug 2003 16:22:16 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix)
	id 9FA4C89F0; Wed,  6 Aug 2003 16:22:00 -0400 (EDT)
Delivered-To: ips-outgoing@sos.ece.cmu.edu
Received: from osgood.ece.cmu.edu (OSGOOD.ECE.CMU.EDU [128.2.129.25])
	by sos.ece.cmu.edu (Postfix) with ESMTP id 8C90C89ED
	for <ips-outgoing@sos.ece.cmu.edu>; Wed,  6 Aug 2003 16:22:00 -0400 (EDT)
Received: by osgood.ece.cmu.edu (Postfix)
	id 4E1F397; Wed,  6 Aug 2003 16:22:00 -0400 (EDT)
Delivered-To: ips-outgoing@ece.cmu.edu
Received: by osgood.ece.cmu.edu (Postfix, from userid 953)
	id 197BFA3; Wed,  6 Aug 2003 16:22:00 -0400 (EDT)
Received: from sos.ece.cmu.edu (SOS.ECE.CMU.EDU [128.2.129.27])
	by osgood.ece.cmu.edu (Postfix) with ESMTP id 7B3FD97
	for <ips-outgoing@ece.cmu.edu>; Wed,  6 Aug 2003 16:21:57 -0400 (EDT)
Received: by sos.ece.cmu.edu (Postfix, from userid 363)
	id 4F97689F2; Wed,  6 Aug 2003 16:21:57 -0400 (EDT)
X-Original-To: ips@sos.ece.cmu.edu
Delivered-To: ips@sos.ece.cmu.edu
Received: from hazard.ece.cmu.edu (HAZARD.ECE.CMU.EDU [128.2.129.24])
	by sos.ece.cmu.edu (Postfix) with ESMTP id 8B52F89ED
	for <ips@sos.ece.cmu.edu>; Wed,  6 Aug 2003 16:21:55 -0400 (EDT)
Received: by hazard.ece.cmu.edu (Postfix)
	id 1CCF2CA; Wed,  6 Aug 2003 16:21:55 -0400 (EDT)
Delivered-To: ips@ece.cmu.edu
Received: by hazard.ece.cmu.edu (Postfix, from userid 953)
	id DFB67F3; Wed,  6 Aug 2003 16:21:54 -0400 (EDT)
Received: from mononoke.wasabisystems.com (unknown [151.199.66.145])
	by hazard.ece.cmu.edu (Postfix) with ESMTP id D77ECCA
	for <ips@ece.cmu.edu>; Wed,  6 Aug 2003 16:21:51 -0400 (EDT)
Received: by mononoke.wasabisystems.com (Postfix, from userid 1021)
	id 8E03440138; Wed,  6 Aug 2003 16:21:51 -0400 (EDT)
Date: Wed, 6 Aug 2003 13:20:25 -0700 (PDT)
From: wrstuden@wasabisystems.com
X-X-Sender: wrstuden@neverwinter.home-net.icnt.net
To: Eddy Quicksall <eddy_quicksall@ivivity.com>
Cc: pat_thaler@agilent.com, satran@haifasphere.co.il,
	julian@cs.haifa.ac.il, Black_David@emc.com, dcuddihy@attotech.com,
	ips@ece.cmu.edu
Subject: RE: StatSN and overlapped commands
In-Reply-To: <AEC4671C8179D61194DE0002B328BDD2858006@atlops.ivivity.com>
Message-ID: <Pine.NEB.4.53.0308061308420.166@neverwinter.home-net.icnt.net>
References: <AEC4671C8179D61194DE0002B328BDD2858006@atlops.ivivity.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-ips@ece.cmu.edu
Precedence: bulk
X-Spam-Status: No, hits=-37.2 required=5.0
	tests=BAYES_01,EMAIL_ATTRIBUTION,IN_REP_TO,NO_REAL_NAME,
	      QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES,
	      USER_AGENT_PINE
	version=2.50
X-Spam-Level: 
X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp)

On Wed, 6 Aug 2003, Eddy Quicksall wrote:

> I don't think we should make it an error if that implies that the target
> needs to check for the error.

In my most recent note, I'm suggesting we make it an error, but that we
let the target ignore the "error" if it has already terminated the task.

If we don't make it an error, we run into the question of what should a
target do if the first (status-unacknowledged) task needs to support
recovery actions. If the second, same ITT, task is allowed to exist, Data
SNACKs become ambiguous. That strikes me as VERY much against the intent
of data recovery. :-) Just letting the target report this as an error
seems the easiest thing to do.

The reason for letting the target ignore this case is so that we permit
implementations like Pat was describing. If you know you aren't going to
do any recovery (either you aren't supporting it or it's a SCSI write
command and thus the target knows all is done), then it's fine to kill the
task, and then this case isn't ambiguous.

> It seems that if the initiator does this, he probably has a bug or a race
> condition that will lead to a bug later. So isn't it his responsibility to
> debug his program?

I agree it's the initiator's problem. The thing is that if we don't make
it an "error", then the target has to deal with the problem, and the
corner cases can get messy.

So to be clear, I'm suggesting the "it's an error you can ignore if it
isn't a problem" approach so that we give different target implementations
the room to deal with the situation as they see fit.

Take care,

Bill
