Thread: missing ML messages

missing ML messages

From
Justin Pryzby
Date:
I noticed that one of my messages never made it to the HTTP page:
20210119190720.GL8560@telsasoft.com

I know Dilip got it, since he responded to me, but his response isn't visible,
either:
CAFiTN-t9AaDAvc4NMM3FWkLbR=WGhQ+j0+Q5E13BftsJLur19g@mail.gmail.com

As a consequence of the missed messages, the CF manager changed the patch
status, since it would appear to anyone who wasn't directly included that
there's no response since the most recent patch.

https://commitfest.postgresql.org/31/2813/
| 2021-01-22 13:29:28     Masahiko Sawada (masahikosawada)     New status: Needs review

My message was sent with headers like so:

From pryzby@telsasoft.com Tue Jan 19 13:07:20 2021
                                                                                                          
 
Date: Tue, 19 Jan 2021 13:07:20 -0600
                                                                                                          
 
From: Justin Pryzby <pryzby@telsasoft.com>
                                                                                                          
 
To: Dilip Kumar <dilipbalaut@gmail.com>
                                                                                                          
 
Cc: Robert Haas <robertmhaas@gmail.com>,
                                                                                                          
 
        Tomas Vondra <tomas.vondra@2ndquadrant.com>,
                                                                                                          
 
        Alexander Korotkov <a.korotkov@postgrespro.ru>,
                                                                                                          
 
        David Steele <david@pgmasters.net>,
                                                                                                          
 
        Ildus Kurbangaliev <i.kurbangaliev@gmail.com>,
                                                                                                          
 
        Dmitry Dolgov <9erthalion6@gmail.com>,
                                                                                                          
 
        pgsql-hackers@lists.postgresql.org
                                                                                                          
 
Subject: Re: [HACKERS] Custom compression methods
                                                                                                          
 
Message-ID: <20210119190720.GL8560@telsasoft.com>
                                                                                                          
 
MIME-Version: 1.0
                                                                                                          
 
Content-Type: text/plain; charset=us-ascii
                                                                                                          
 
Content-Disposition: inline
                                                                                                          
 
In-Reply-To: <CAFiTN-updTo3aB+7vsECHOHpjB23Av5OfgZQrt90Q33gFK-oZQ@mail.gmail.com>
                                                                                                          
 
        <CAFiTN-utJPbTLQ9i10wT_zmHX=un+RQMB1B1xbkTgrh971vqjw@mail.gmail.com>
                                                                                                          
 
User-Agent: Mutt/1.9.4 (2018-02-28)
                                                                                                          
 
Status: RO
                                                                                                          
 
Content-Length: 6445
                                                                                                          
 
Lines: 174
                                                                                                          
 

Jan 19 13:07:20 pryzbyj postfix/pickup[11554]: 73DEC800C62: uid=1000 from=<pryzby@telsasoft.com>
Jan 19 13:07:20 pryzbyj postfix/cleanup[21537]: 73DEC800C62: message-id=<20210119190720.GL8560@telsasoft.com>
Jan 19 13:07:20 pryzbyj postfix/qmgr[3541]: 73DEC800C62: from=<pryzby@telsasoft.com>, size=7551, nrcpt=8 (queue
active)
...
Jan 19 13:07:22 pryzbyj postfix/smtp[21544]: 73DEC800C62: to=<pgsql-hackers@lists.postgresql.org>,
relay=smtp.gmail.com[108.177.121.108]:25,delay=2.6, delays=0.18/0.02/0.76/1.6, dsn=2.0.0, status=sent (250 2.0.0 OK
1611083242o20sm2265883iob.41 - gsmtp)
 
...
Jan 19 13:07:22 pryzbyj postfix/qmgr[3541]: 73DEC800C62: removed



Re: missing ML messages

From
Tom Lane
Date:
Justin Pryzby <pryzby@telsasoft.com> writes:
> I noticed that one of my messages never made it to the HTTP page:
> 20210119190720.GL8560@telsasoft.com

I see it in the archives, and in my local mail folder too.

https://www.postgresql.org/message-id/20210119190720.GL8560@telsasoft.com

            regards, tom lane



Re: missing ML messages

From
Justin Pryzby
Date:
On Fri, Jan 22, 2021 at 10:07:38PM -0500, Tom Lane wrote:
> Justin Pryzby <pryzby@telsasoft.com> writes:
> > I noticed that one of my messages never made it to the HTTP page:
> > 20210119190720.GL8560@telsasoft.com
> 
> I see it in the archives, and in my local mail folder too.
> https://www.postgresql.org/message-id/20210119190720.GL8560@telsasoft.com

Ok...I must have entered it wrong somehow.

So the problem is that it doesn't show up here:
https://www.postgresql.org/message-id/flat/20170907194236.4cefce96%40wp.localdomain

Is it because I used two IDs in reply-to headers?

In-Reply-To: <CAFiTN-updTo3aB+7vsECHOHpjB23Av5OfgZQrt90Q33gFK-oZQ@mail.gmail.com>
                                                                                                          
 
        <CAFiTN-utJPbTLQ9i10wT_zmHX=un+RQMB1B1xbkTgrh971vqjw@mail.gmail.com>
                                                                                                          
 

In mutt, I would've 't'agged two messages, and then ';'-'r' to reply and quote both.

-- 
Justin



Re: missing ML messages

From
Magnus Hagander
Date:
On Sat, Jan 23, 2021 at 4:14 AM Justin Pryzby <pryzby@telsasoft.com> wrote:
>
> On Fri, Jan 22, 2021 at 10:07:38PM -0500, Tom Lane wrote:
> > Justin Pryzby <pryzby@telsasoft.com> writes:
> > > I noticed that one of my messages never made it to the HTTP page:
> > > 20210119190720.GL8560@telsasoft.com
> >
> > I see it in the archives, and in my local mail folder too.
> > https://www.postgresql.org/message-id/20210119190720.GL8560@telsasoft.com
>
> Ok...I must have entered it wrong somehow.
>
> So the problem is that it doesn't show up here:
> https://www.postgresql.org/message-id/flat/20170907194236.4cefce96%40wp.localdomain
>
> Is it because I used two IDs in reply-to headers?
>
> In-Reply-To: <CAFiTN-updTo3aB+7vsECHOHpjB23Av5OfgZQrt90Q33gFK-oZQ@mail.gmail.com>
>         <CAFiTN-utJPbTLQ9i10wT_zmHX=un+RQMB1B1xbkTgrh971vqjw@mail.gmail.com>
>
> In mutt, I would've 't'agged two messages, and then ';'-'r' to reply and quote both.

Yeah, I think that's it. We only parse a single value in the in-reply-to.

Normally this shouldn't be a problem, because normally the messageid
is also listed in References,  but your message doesn't appear to
contain *any* References header. Which should normally be a list of
all the previous messages in the thread.

Have you done something in your config to specifically turn off adding
of References headers? It seems strange we haven't seen this before...

And yes, a quick look at the RFC shows that multiple values in
In-reply-to is allowed. The problem is that this is one of the most
broken fields as to what MUAs put in there -- the vast majority who
put more than one field in there, puts in something in a completely
broken format. So traditionally this has been much easier to ignore,
and to rely on the References header for those cases.

-- 
 Magnus Hagander
 Me: https://www.hagander.net/
 Work: https://www.redpill-linpro.com/



Re: missing ML messages

From
Justin Pryzby
Date:
On Sun, Jan 24, 2021 at 02:37:33PM +0100, Magnus Hagander wrote:
> On Sat, Jan 23, 2021 at 4:14 AM Justin Pryzby <pryzby@telsasoft.com> wrote:
> >
> > On Fri, Jan 22, 2021 at 10:07:38PM -0500, Tom Lane wrote:
> > > Justin Pryzby <pryzby@telsasoft.com> writes:
> > > > I noticed that one of my messages never made it to the HTTP page:
> > > > 20210119190720.GL8560@telsasoft.com
> > >
> > > I see it in the archives, and in my local mail folder too.
> > > https://www.postgresql.org/message-id/20210119190720.GL8560@telsasoft.com
> >
> > Ok...I must have entered it wrong somehow.
> >
> > So the problem is that it doesn't show up here:
> > https://www.postgresql.org/message-id/flat/20170907194236.4cefce96%40wp.localdomain
> >
> > Is it because I used two IDs in reply-to headers?
> >
> > In-Reply-To: <CAFiTN-updTo3aB+7vsECHOHpjB23Av5OfgZQrt90Q33gFK-oZQ@mail.gmail.com>
> >         <CAFiTN-utJPbTLQ9i10wT_zmHX=un+RQMB1B1xbkTgrh971vqjw@mail.gmail.com>
> >
> > In mutt, I would've 't'agged two messages, and then ';'-'r' to reply and quote both.
> 
> Yeah, I think that's it. We only parse a single value in the in-reply-to.
> 
> Normally this shouldn't be a problem, because normally the messageid
> is also listed in References,  but your message doesn't appear to
> contain *any* References header. Which should normally be a list of
> all the previous messages in the thread.
> 
> Have you done something in your config to specifically turn off adding
> of References headers? It seems strange we haven't seen this before...

I suspect I *have* seen it before, but in a marginal context so I never
reported it.

It looks like mutt doesn't use References when there's multiple parents.

headers.c:
|    /* in case the user modifies/removes the In-Reply-To header with
|       $edit_headers set, we remove References: as they're likely invalid;
|       we can simply compare strings as we don't generate References for
|       multiple Message-Ids in IRT anyways */
|    if (sctx->msg->env->in_reply_to &&
|        (!n->in_reply_to || mutt_strcmp (n->in_reply_to->data,
|                                         sctx->msg->env->in_reply_to->data) != 0))
|      mutt_free_list (&sctx->msg->env->references);


send.c:
|  /* if there's more than entry in In-Reply-To (i.e. message has
|     multiple parents), don't generate a References: header as it's
|     discouraged by RfC2822, sect. 3.6.4 */
|  if (ctx->tagged > 0 && env->in_reply_to && env->in_reply_to->next)
|    mutt_free_list (&env->references);


https://tools.ietf.org/html/rfc2822#section-3.6.4
|   The "In-Reply-To:" field will contain the contents of the "Message-
|   ID:" field of the message to which this one is a reply (the "parent
|   message").  If there is more than one parent message, then the "In-
|   Reply-To:" field will contain the contents of all of the parents'
|   "Message-ID:" fields.
|
|   The "References:" field will contain the contents of the parent's
|   "References:" field (if any) followed by the contents of the parent's
|   "Message-ID:" field (if any).  If the parent message does not contain
|   a "References:" field but does have an "In-Reply-To:" field
|   containing a single message identifier, then the "References:" field
|   will contain the contents of the parent's "In-Reply-To:" field
|   followed by the contents of the parent's "Message-ID:" field (if
|   any).  If the parent has none of the "References:", "In-Reply-To:",
|   or "Message-ID:" fields, then the new message will have no
|   "References:" field.
|
|   Note: Some implementations parse the "References:" field to display
|   the "thread of the discussion".  These implementations assume that
|   each new message is a reply to a single parent and hence that they
|   can walk backwards through the "References:" field to find the parent
|   of each message listed there.  Therefore, trying to form a
|   "References:" field for a reply that has multiple parents is
|   discouraged and how to do so is not defined in this document.


So mutt's behavior is deliberate and recommended by standard, so I think this
is up to pglister to (try to) handle IRT with multiple IDs.  It seems to me
like it currently either does nothing, or doesn't split the field, so ends up
trying to us an ID that's actually two catenated IDs.  Maybe it'd be fine (or
at least an improvement) to just use the first ID, or the first one that's
known to pglister.

-- 
Justin



Re: missing ML messages

From
Justin Pryzby
Date:
On Sun, Jan 24, 2021 at 02:37:33PM +0100, Magnus Hagander wrote:
> On Sat, Jan 23, 2021 at 4:14 AM Justin Pryzby <pryzby@telsasoft.com> wrote:
> > On Fri, Jan 22, 2021 at 10:07:38PM -0500, Tom Lane wrote:
> > > Justin Pryzby <pryzby@telsasoft.com> writes:
> > > > I noticed that one of my messages never made it to the HTTP page:
> > > > 20210119190720.GL8560@telsasoft.com
> > >
> > > I see it in the archives, and in my local mail folder too.
> > > https://www.postgresql.org/message-id/20210119190720.GL8560@telsasoft.com
> >
> > Ok...I must have entered it wrong somehow.
> >
> > So the problem is that it doesn't show up here:
> > https://www.postgresql.org/message-id/flat/20170907194236.4cefce96%40wp.localdomain
> >
> > Is it because I used two IDs in reply-to headers?
> >
> > In-Reply-To: <CAFiTN-updTo3aB+7vsECHOHpjB23Av5OfgZQrt90Q33gFK-oZQ@mail.gmail.com>
> >         <CAFiTN-utJPbTLQ9i10wT_zmHX=un+RQMB1B1xbkTgrh971vqjw@mail.gmail.com>
> >
> > In mutt, I would've 't'agged two messages, and then ';'-'r' to reply and quote both.
> 
> Yeah, I think that's it. We only parse a single value in the in-reply-to.

I wondered if you've tried to address this ?

+ Chapman Flack, who wrote:

https://www.postgresql.org/message-id/61C09C1D.5050702@anastigmatix.net
> *seeing that RFC 5322 3.6.4 permits more than one msg-id for in-reply-to,
> crosses fingers to see what PGLister will make of it*

-- 
Justin



Re: missing ML messages

From
Magnus Hagander
Date:
On Sun, Jan 9, 2022 at 8:35 PM Justin Pryzby <pryzby@telsasoft.com> wrote:
>
> On Sun, Jan 24, 2021 at 02:37:33PM +0100, Magnus Hagander wrote:
> > On Sat, Jan 23, 2021 at 4:14 AM Justin Pryzby <pryzby@telsasoft.com> wrote:
> > > On Fri, Jan 22, 2021 at 10:07:38PM -0500, Tom Lane wrote:
> > > > Justin Pryzby <pryzby@telsasoft.com> writes:
> > > > > I noticed that one of my messages never made it to the HTTP page:
> > > > > 20210119190720.GL8560@telsasoft.com
> > > >
> > > > I see it in the archives, and in my local mail folder too.
> > > > https://www.postgresql.org/message-id/20210119190720.GL8560@telsasoft.com
> > >
> > > Ok...I must have entered it wrong somehow.
> > >
> > > So the problem is that it doesn't show up here:
> > > https://www.postgresql.org/message-id/flat/20170907194236.4cefce96%40wp.localdomain
> > >
> > > Is it because I used two IDs in reply-to headers?
> > >
> > > In-Reply-To: <CAFiTN-updTo3aB+7vsECHOHpjB23Av5OfgZQrt90Q33gFK-oZQ@mail.gmail.com>
> > >         <CAFiTN-utJPbTLQ9i10wT_zmHX=un+RQMB1B1xbkTgrh971vqjw@mail.gmail.com>
> > >
> > > In mutt, I would've 't'agged two messages, and then ';'-'r' to reply and quote both.
> >
> > Yeah, I think that's it. We only parse a single value in the in-reply-to.
>
> I wondered if you've tried to address this ?

I have not personally had time to look into it, no (I assume you meant
this for me, even though you addressed it primarily to Champan, who
previously did not participate in the thread). And apparently neither
has anybody else.


> + Chapman Flack, who wrote:
>
> https://www.postgresql.org/message-id/61C09C1D.5050702@anastigmatix.net
> > *seeing that RFC 5322 3.6.4 permits more than one msg-id for in-reply-to,
> > crosses fingers to see what PGLister will make of it*

It should be noted that pglister does exactly nothing with it and
should pass it through without making any changes whatsoever.

The question is what happens when it hits the archives, which are not
part of pglister. Which of course still needs to be handled.

A first step would probably be to figure out *what* to do. The RFC
basically appears to punt on the whole idea of what to do with
multiple parents. I'm unsure what would be the best thing for pglister
to do. Just pick the first entry and go with that? That would
certainly be the easiest, but would it be correct?

-- 
 Magnus Hagander
 Me: https://www.hagander.net/
 Work: https://www.redpill-linpro.com/



Re: missing ML messages

From
Chapman Flack
Date:
On 01/16/22 11:34, Magnus Hagander wrote:
>> https://www.postgresql.org/message-id/61C09C1D.5050702@anastigmatix.net
>>> *seeing that RFC 5322 3.6.4 permits more than one msg-id for in-reply-to,
>>> crosses fingers to see what PGLister will make of it*
> 
> A first step would probably be to figure out *what* to do. The RFC
> basically appears to punt on the whole idea of what to do with
> multiple parents. I'm unsure what would be the best thing for pglister
> to do. Just pick the first entry and go with that? That would
> certainly be the easiest, but would it be correct?

I'm not sure whether the best metric is 'correct' or 'useful'.

I think that on the one occasion where I jumped through the hoops of
making my MUA produce a message with two in-reply-to IDs, it was in
the hope that might allow future readers of either archive thread
to find the message.

Regards,
-Chap