[#1416] Who adds Ijection-Date When?

"Charles Lindsey" <chl@clerew.man.ac.uk> Tue, 13 November 2007 17:16 UTC

Return-path: <owner-ietf-usefor@mail.imc.org>
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1IrzMr-0006w6-0J for usefor-archive@lists.ietf.org; Tue, 13 Nov 2007 12:16:05 -0500
Received: from balder-227.proper.com ([192.245.12.227]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1IrzMh-0004cI-3p for usefor-archive@lists.ietf.org; Tue, 13 Nov 2007 12:16:04 -0500
Received: from balder-227.proper.com (localhost [127.0.0.1]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id lADHCA53029251 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 13 Nov 2007 10:12:10 -0700 (MST) (envelope-from owner-ietf-usefor@mail.imc.org)
Received: (from majordom@localhost) by balder-227.proper.com (8.13.5/8.13.5/Submit) id lADHCAZo029250; Tue, 13 Nov 2007 10:12:10 -0700 (MST) (envelope-from owner-ietf-usefor@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to owner-ietf-usefor@mail.imc.org using -f
Received: from lon-mail-4.gradwell.net (lon-mail-4.gradwell.net [193.111.201.130]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id lADHC9Ot029235 for <ietf-usefor@imc.org>; Tue, 13 Nov 2007 10:12:10 -0700 (MST) (envelope-from news@clerew.man.ac.uk)
Received: from [80.175.135.89] ([80.175.135.89] helo=clerew.man.ac.uk country=GB ident=postmaster*pop3#clerew*man^ac#uk) by lon-mail-4.gradwell.net with esmtpa (Gradwell gwh-smtpd 1.262) id 4739dae6.eaad.2c0 for ietf-usefor@imc.org; Tue, 13 Nov 2007 17:12:06 +0000 (envelope-sender <news@clerew.man.ac.uk>)
Received: from clerew.man.ac.uk (localhost [127.0.0.1]) by clerew.man.ac.uk (8.13.7/8.13.7) with ESMTP id lADHC0ds016311 for <ietf-usefor@imc.org>; Tue, 13 Nov 2007 17:12:00 GMT
Received: (from news@localhost) by clerew.man.ac.uk (8.13.7/8.13.7/Submit) id lADHC0R7016308 for ietf-usefor@imc.org; Tue, 13 Nov 2007 17:12:00 GMT
To: ietf-usefor@imc.org
Xref: clerew local.usefor:24749
Path: clerew!chl
From: Charles Lindsey <chl@clerew.man.ac.uk>
Subject: [#1416] Who adds Ijection-Date When?
Message-ID: <JrG33x.MrF@clerew.man.ac.uk>
X-Newsreader: NN version 6.5.2 (NOV)
References: <20071110194830.3F35AE834E@windlord.stanford.edu>
Date: Tue, 13 Nov 2007 12:38:21 +0000
Lines: 174
Sender: owner-ietf-usefor@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-usefor/mail-archive/>
List-Unsubscribe: <mailto:ietf-usefor-request@imc.org?body=unsubscribe>
List-ID: <ietf-usefor.imc.org>
X-Spam-Score: 1.4 (+)
X-Scan-Signature: 848ed35f2a4fc0638fa89629cb640f48

In <20071110194830.3F35AE834E@windlord.stanford.edu> rra@stanford.edu writes:

>    Date: Saturday, November 10, 2007 @ 11:48:28
>  Author: eagle
>Revision: 3224

>Make usepro-09.

>Modified:
>  docs/usefor/usepro.xml

>Modified: docs/usefor/usepro.xml
>===================================================================
>--- docs/usefor/usepro.xml	2007-11-10 01:20:34 UTC (rev 3223)
>+++ docs/usefor/usepro.xml	2007-11-10 19:48:28 UTC (rev 3224)

OK, nice to see some action. It's been a quiet summer (I have found lots
off other things to do) but we really need to get back to this.

Issue 1416 is the major outstanding item. I posted a sunnary of where we
were at in http://www.imc.org/ietf-usefor/mail-archive/msg04240.html, and
Russ agreed that it was a fair summary.

I repeat that text here:



The main outstanding matter is Issue #1416, which I shall now try to
summarize as I see it.

Essentially, we have to choose between two options, which we have in the
past named "IR" and "IC". The current text reflects IR. The differences
relate to when an Injection-Date header MUST/MUST NOT/Whatever be added by
Posting and Injection agents.

Option IR
---------

Adding Injection-Date by Posting agent, according to headers present in
proto-article and intention wrt multiple injection:

						MUST	MUSTNOT	SHOULD	MAY
Multiple injection (also requires Msgid & Date)	YES
"Reinjection" (aka "gatewaying after the fact")		YES
Message-ID and stale Date present				YES
Message-ID _and_ Date present						YES
Message-ID or Date or both absent					???

[Where I believe "???" should be "YES", but text doesn't actually say so]

Adding Injection-Date by Injecting agent, according to headers present in
incoming proto-article:

						MUST	MUSTNOT	SHOULD	MAY
Injection-Date already present				YES
Message-ID _and_ Date present				YES
Message-ID or Date or both absent		YES

Option IC
---------

Adding Injection-Date by Posting agent, according to headers present in
proto-article and intention wrt multiple injection:

						MUST	MUSTNOT	SHOULD	MAY
Multiple injection (also requires Msgid & Date)	YES
"Reinjection" (aka "gatewaying after the fact")		YES
Message-ID and stale Date present				YES
All other cases (Message-ID or Date or neither)				YES

Adding Injection-Date by Injecting agent, according to headers present in
incoming proto-article:

						MUST	MUSTNOT	SHOULD	MAY
Injection-Date already present				YES
All other cases (Message-ID or Date or neither)	YES


Discussion of IR
----------------

The essential difference is the rule that Injecting agents MUST NOT add
Injection-Date if _both_ Message-ID and Date are already present, and MUST
add it otherwise. This rule is counter-intuitive and confusing.

A consequence of the rule is that it will forever remain the case that
some articles will never acquire an Injection-Date (those where the
Posting agent provides both of Message-ID and Date).

Russ counters this by claiming that, in time, Posting agents will learn to
add the Injection-Date themselves, but this is only a "MAY" as specified,
and I remain unconvinced that implementors will take the hint.

So if we decide to remain with Option IR, I would want to see a much
stronger wording in place of that "MAY" (not necessarily a "SHOULD", but
some indication that it was intended to become standard practice).

Moreover, there is a danger that Posting agent implementors will do it
wrongly, adding the Injection-Date _before_ they are sure they have a
working connection to an Injecting agent. Yes, multiple injectors have to
get this right, but people doing multiple injection can be expected to
have a higher level of "clue".

Discussion of IC
----------------

We distinguish between "OLD" agents which are unaware of our new standard,
and "NEW" agents which implement it as written.

The following scenario, which I understand to be the case Russ is worried
about, illustrates the problem with IC. If anyone knows of a different, or
a simpler, scenario that exhibits the same problem, then please speak up.

Day 0	OLD Posting agent P composes an article (with Date: Day0) and some
	Message-ID. P is in the habit of multi-injecting.
Day 1	P injects the message to (OLD or NEW) Injecting agent A (the ACopy).
Day 2	P injects the message to NEW Injecting agent B (the BCopy); B adds
	Injection-Date: Day2.
meanwhile:
Day 1	The ACopy propagates rapidly and arrives at NEW Serving agent C,
	which stores it and puts it in its history file (which it
	normally retains for 7 days).
Day 2	The BCopy arrives at Relaying agent D, which promptly breaks and goes
	offline for 7 days (or otherwise causes that propagation delay).
Day 8	C removes the ACopy from its history file.
Day 9	D wakes up, embarks on a massive catchup, and releases the BCopy.
Day 9	The BCopy arrives at C, which observes that it is (just) within 7
	days of its Injection-Date, and so accepts and stores it again.

	Which is, of course, a Bad Thing. C's users will say "Didn't I
	already see that article last week?" But it is no worse than that;
	in particular, I cannot see any way that looping could arise.

Observe that this Bad Thing would not have happened if:
	. B had been an OLD agent
	. C had been an OLD agent
	. P had been a NEW agent
	. The delay at D had been 1 day less
	. The delay at D had been 1 day more

So yes, the Bad Thing would not have happened on the current network, and
it will not happen when the whole network is NEW - so it is a transitional
problem whilst OLD and NEW agents are still around. Moreover, you might
think the whole scenario is somewhat artificial (hence the invitation to
propose more realistic scenarios).

So the choice you people have to make is between this possible, but rare,
Bad Thing, and the counter-intuitive properties of option IR.

We have discussed this extensively, and I don't think there is much more
to be said. I therefore request our Chair to conduct a Head Count on IR
versus IC.

I think we can assume that Russ will vote for IR and I will vote for IC,
so it is the rest of you that will effectively decide it.

For details of bits of the draft that wouild be affected if we decide to go
with IC, please refer to
http://www.imc.org/ietf-usefor/mail-archive/msg04240.html.


There are several other issues outstanding, of which #1415 is the most
important (but nowhere as controversial as #1416).

-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133   Web: http://www.cs.man.ac.uk/~chl
Email: chl@clerew.man.ac.uk      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5