Issue 237: Message-Ids in gerrit emails not always unique
Status:  Accepted
Owner: ----
Reported by code-rev...@gtempaccount.com, Sep 24, 2009
Reported by Andrew Deason <adeason@sinenomine.net> on Thu Jul 09 07:56:31 PDT 2009
Source: JIRA GERRIT-238
Affected Version: 2.0.15

I've received a couple of emails from gerrit that have the same message-id.
First, there's this email from the original change that was submitted:

---CUT---
Received: from localhost.localdomain (192.168.101.230) by
 VA1VEXC01.SNAADS.sinenomine.net (192.168.101.235) with Microsoft SMTP Server
 id 8.1.375.2; Tue, 7 Jul 2009 14:37:13 -0400
Received: from localhost ([127.0.0.1])	by va1mbx01.sinenomine.net with esmtp
 (Exim 4.63)	(envelope-from <adeason@sinenomine.net>)	id 1MOFXU-0004Zn-Sk	for
 adeason@sinenomine.net; Tue, 07 Jul 2009 14:37:13 -0400
Received: from va1mbx01.sinenomine.net ([127.0.0.1])	by localhost
 (va1vmbx01.sinenomine.net [127.0.0.1]) (amavisd-new, port 10024)	with ESMTP
 id BL5JSAUcJ11d for <adeason@sinenomine.net>;	Tue,  7 Jul 2009 14:36:18 -0400
 (EDT)
Received: from tx1srv02.openvpn.sinenomine.net ([192.168.253.1]
 helo=tx1srv02.sinenomine.net)	by va1mbx01.sinenomine.net with esmtps
 (TLS-1.0:RSA_AES_256_CBC_SHA1:32)	(Exim 4.63)	(envelope-from
 <adeason@sinenomine.net>)	id 1MOFWc-0004Yn-Af	for adeason@sinenomine.net;
 Tue, 07 Jul 2009 14:36:18 -0400
Received: from localhost ([127.0.0.1])	by tx1srv02.sinenomine.net with esmtp
 (Exim 4.63)	(envelope-from <adeason@sinenomine.net>)	id 1MOFWb-0003hl-Sa	for
 adeason@sinenomine.net; Tue, 07 Jul 2009 13:36:17 -0500
Received: from tx1srv02.sinenomine.net ([127.0.0.1])	by localhost
 (tx1srv02.sinenomine.net [127.0.0.1]) (amavisd-new, port 10024)	with ESMTP id
 xsAtVm4L4k5f for <adeason@sinenomine.net>;	Tue,  7 Jul 2009 13:36:03 -0500
 (CDT)
Received: from smtp3.stanford.edu ([171.67.219.83])	by tx1srv02.sinenomine.net
 with esmtp (Exim 4.63)	(envelope-from <adeason@sinenomine.net>)	id
 1MOFWN-0003hW-Qb	for adeason@sinenomine.net; Tue, 07 Jul 2009 13:36:03 -0500
Received: from smtp3.stanford.edu (localhost.localdomain [127.0.0.1])	by
 localhost (Postfix) with SMTP id 8825E1A097B;	Tue,  7 Jul 2009 11:35:57 -0700
 (PDT)
Received: from openafs.stanford.edu (openafs.Stanford.EDU [171.67.16.51])	by
 smtp3.stanford.edu (Postfix) with ESMTP id 76DED1A091F;	Tue,  7 Jul 2009
 11:35:56 -0700 (PDT)
From: Andrew Deason <adeason@sinenomine.net>
To: Russ Allbery <rra@stanford.edu>, Derrick Brashear <shadow@dementia.org>
CC: Andrew Deason <adeason@sinenomine.net>
Date: Tue, 7 Jul 2009 14:35:56 -0400
Subject: [master] Change 9: (openafs) Always display vnode accesses in vos
output
Thread-Topic: [master] Change 9: (openafs) Always display vnode accesses in
 vos output
Thread-Index: Acn/MfI6LX29EtNyQRu0gly7bn3RTg==
Message-ID: <gerrit.1246991756115.9@gerrit.openafs.org>
List-Unsubscribe: <http://gerrit.openafs.org/settings>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Organization-AuthSource: VA1VEXC01.SNAADS.sinenomine.net
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Gerrit/v2.0.15
x-spam-level:
x-spam-status: No, score=-5.358 tagged_above=-999 required=14
	tests=[AWL=1.241, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
x-virus-scanned: Debian amavisd-new at sinenomine.net
	(tx1srv02.sinenomine.net)
x-spam-score: -5.358
x-crm114-status: Good  ( pR: 0.000000  )
envelope-to: adeason@sinenomine.net
delivery-date: Tue, 07 Jul 2009 14:37:13 -0400
list-id: <gerrit-openafs.gerrit.openafs.org>
mailing-list: list gerrit-openafs@gerrit.openafs.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0

Change 9 for master in openafs:

    http://gerrit.openafs.org/9


Always display vnode accesses in vos output

FIXES 125064

Vos was not displaying the "N accesses in the past day (i.e., vnode
references)" message when updateDate was unset. Fix that.
---
M src/volser/vos.c

--
To view visit http://gerrit.openafs.org/9
To unsubscribe, visit http://gerrit.openafs.org/settings

Gerrit-MessageType: newchange
Gerrit-Project: openafs
Gerrit-Branch: master

---CUT---

And a few days later this email was sent:

---CUT---
Received: from localhost.localdomain (192.168.101.230) by
 VA1VEXC01.SNAADS.sinenomine.net (192.168.101.235) with Microsoft SMTP Server
 id 8.1.375.2; Thu, 9 Jul 2009 09:29:40 -0400
Received: from localhost ([127.0.0.1])	by va1mbx01.sinenomine.net with esmtp
 (Exim 4.63)	(envelope-from <jaltman@openafs.org>)	id 1MOtgx-0000oC-II	for
 adeason@sinenomine.net; Thu, 09 Jul 2009 09:29:39 -0400
Received: from va1mbx01.sinenomine.net ([127.0.0.1])	by localhost
 (va1vmbx01.sinenomine.net [127.0.0.1]) (amavisd-new, port 10024)	with ESMTP
 id jaVLTCSG6nrU for <adeason@sinenomine.net>;	Thu,  9 Jul 2009 09:29:33 -0400
 (EDT)
Received: from tx1srv02.openvpn.sinenomine.net ([192.168.253.1]
 helo=tx1srv02.sinenomine.net)	by va1mbx01.sinenomine.net with esmtps
 (TLS-1.0:RSA_AES_256_CBC_SHA1:32)	(Exim 4.63)	(envelope-from
 <jaltman@openafs.org>)	id 1MOtgr-0000o7-4Q	for adeason@sinenomine.net; Thu,
 09 Jul 2009 09:29:33 -0400
Received: from localhost ([127.0.0.1])	by tx1srv02.sinenomine.net with esmtp
 (Exim 4.63)	(envelope-from <jaltman@openafs.org>)	id 1MOtgq-0006Tc-N2	for
 adeason@sinenomine.net; Thu, 09 Jul 2009 08:29:32 -0500
Received: from tx1srv02.sinenomine.net ([127.0.0.1])	by localhost
 (tx1srv02.sinenomine.net [127.0.0.1]) (amavisd-new, port 10024)	with ESMTP id
 o5JjNpKVi9cu for <adeason@sinenomine.net>;	Thu,  9 Jul 2009 08:29:26 -0500
 (CDT)
Received: from smtp5.stanford.edu ([171.67.219.85])	by tx1srv02.sinenomine.net
 with esmtp (Exim 4.63)	(envelope-from <jaltman@openafs.org>)	id
 1MOtgj-0006TS-M9	for adeason@sinenomine.net; Thu, 09 Jul 2009 08:29:26 -0500
Received: from smtp5.stanford.edu (localhost.localdomain [127.0.0.1])	by
 localhost (Postfix) with SMTP id ECF8118FC17;	Thu,  9 Jul 2009 06:29:21 -0700
 (PDT)
Received: from openafs.stanford.edu (openafs.Stanford.EDU [171.67.16.51])	by
 smtp5.stanford.edu (Postfix) with ESMTP id E4FC118FC12;	Thu,  9 Jul 2009
 06:29:20 -0700 (PDT)
From: Jeffrey Altman <jaltman@openafs.org>
To: Jeffrey Altman <jaltman@openafs.org>
CC: Andrew Deason <adeason@sinenomine.net>, Simon Wilkinson <sxw@inf.ed.ac.uk>
Date: Thu, 9 Jul 2009 09:29:20 -0400
Subject: [master] Change 9: (openafs) Always display vnode accesses in vos
output
Thread-Topic: [master] Change 9: (openafs) Always display vnode accesses in
 vos output
Thread-Index: AcoAmU//4elq/b0WQKi561akGGtqgw==
Message-ID: <gerrit.1246991756115.9@gerrit.openafs.org>
List-Unsubscribe: <http://gerrit.openafs.org/settings>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Organization-AuthSource: VA1VEXC01.SNAADS.sinenomine.net
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Gerrit/v2.0.15
x-spam-level:
x-spam-status: No, score=-6.599 tagged_above=-999 required=14
	tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
x-virus-scanned: Debian amavisd-new at sinenomine.net
	(tx1srv02.sinenomine.net)
x-spam-score: -6.599
x-crm114-status: Good  ( pR: 0.000000  )
envelope-to: adeason@sinenomine.net
delivery-date: Thu, 09 Jul 2009 09:29:39 -0400
list-id: <gerrit-openafs.gerrit.openafs.org>
mailing-list: list gerrit-openafs@gerrit.openafs.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0

Hello Jeffrey Altman,

I'd like you to do a code review.  Please visit

    http://gerrit.openafs.org/9

to review the following change:

Change 9 for master in openafs:

Always display vnode accesses in vos output

Vos was not displaying the "N accesses in the past day (i.e., vnode
references)" message when updateDate was unset. Fix that.

FIXES 125064
---
M src/volser/vos.c

--
To view visit http://gerrit.openafs.org/9
To unsubscribe, visit http://gerrit.openafs.org/settings

Gerrit-MessageType: newchange
Gerrit-Project: openafs
Gerrit-Branch: master
---CUT---

Note how they both have the Message-ID <gerrit.
1246991756115.9@gerrit.openafs.org>. Is gerrit just using the timestamp of the
original submission and the change # to form the ID? That seems rather... non-
unique.
Sep 24, 2009
#1 code-rev...@gtempaccount.com
Comment by Shawn Pearce <sop@google.com> on Fri Jul 10 07:31:13 PDT 2009

See this thread on the mailing list about the same subject:

  http://groups.google.com/group/repo-discuss/browse_thread/thread/b66ba6bc4dc54832?hl=en#
Sep 24, 2009
#2 sop+code@google.com
(No comment was entered for this change.)
Status: Accepted
Owner: ---
Aug 25, 2010
Project Member #3 mf...@codeaurora.org
I read the mailing list thread but did not get any hints about what a good fix would be for this?
Aug 25, 2010
#4 sop@google.com
I think you need to remember what Message-Id we have
used in the past when we send out an email.  Each time
we do that we should use the prior id as the reply-to.

So add a new ChangeEmail entity to the database with
Change.Id, Timestamp (time sent) and String (message id).

Each time we send a message, we create a unique message
id and write it to this table.

When we are sending out a message, we also try to set
our In-Reply-To header by finding the most recent of
these ChangeEmail entities and using that message id.

You may be able to simplify it all and just keep a
"last_email_message_id" column on Change itself.  The
new table with entities in it for each message sent is
very likely overkill.