Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l3jZv-0007h7-UY for pgsql-www@arkaria.postgresql.org; Sun, 24 Jan 2021 17:53:36 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l3jZu-0005Cy-OY for pgsql-www@arkaria.postgresql.org; Sun, 24 Jan 2021 17:53:34 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l3jZu-0005Cr-F5 for pgsql-www@lists.postgresql.org; Sun, 24 Jan 2021 17:53:34 +0000 Received: from mail-io1-xd2e.google.com ([2607:f8b0:4864:20::d2e]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l3jZq-0007v2-Pr for pgsql-www@postgresql.org; Sun, 24 Jan 2021 17:53:33 +0000 Received: by mail-io1-xd2e.google.com with SMTP id q1so21948931ion.8 for ; Sun, 24 Jan 2021 09:53:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=a5452js6ftlPzBJbHHInskz3letnqMZUg7iIjM7ouOM=; b=TQQQMGd7u42tVTox0oP1v0sHEWX89RnEW3/lh94j3UesQLYKxzmkRTd0kDf7I0KpE4 7Yeus5LpIr2JIsijCkxET9gyhh87W1BF9ACQRre/oq45aDt9XP4IeQkR9mIQQ4wsNB9K cEPWBNQXeePwHLl6qGlXqkVkfVSV+kAC+3hIkCLIrC0+HnmMH5K5MyAMu7ZDXcuLx7jn lEHUIJ5x3iQ8d3mWG1/28iY67Zzyqm57i0K7fKZv7gl/pE3yKYtiGvzPmrtJx3FrgtwQ 86uVGHB8aWLAyhd1YSKWuuqcXpFz2yWo1RuEyHTc6G3su4zr/b7yjMEag1kxmZVVW2p6 HRxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=a5452js6ftlPzBJbHHInskz3letnqMZUg7iIjM7ouOM=; b=azi/aBW2O2Y/2dDx/qqYXjJLNwTZlcR6yp/mhvllPlJkHhfy9iFYehMJaL8wEGXs5g iLaeiXau3ea/sMPyCRA+fAPnL/evXFX7GxPqAR5bZahuVPCNmJOWkjAy38+nSznE4Pn/ vb8xTzdu2LGAjR5Gg3CIjv3GZxEYylH4Pt/vC+/caFszhELJj1lGeJrqAANc4520C8YU yLJPfSOrCxCUNgSF+NeOJ3lxYTs9zlpwpoj6wYT20y+9Tl5PrIlUc6RBNE1Un0JI6cDr 3HX+inPIcu/YH9RbEvc9LcQJ70uFRAxw8VW9jVUonHPcZqKrq7/bJFF8EkO6gMg8gMWl jA3w== X-Gm-Message-State: AOAM531wyuzIzYO7ItbKIKtxBEpcrSp6e9ZHe4YLOQE0szRvv/+aDeyQ hIq04EkZwuShMu/1ZK1PfnN8xw== X-Google-Smtp-Source: ABdhPJzaky4+MwqFGKU4P2bD8KMK0eWBhzZWgolYy86ndAOechAU21G7o3kMZQ2NP9oHaC/S15th1g== X-Received: by 2002:a92:ca81:: with SMTP id t1mr1840703ilo.139.1611510808739; Sun, 24 Jan 2021 09:53:28 -0800 (PST) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id l187sm10735504ill.84.2021.01.24.09.53.27 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 24 Jan 2021 09:53:27 -0800 (PST) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id C95868010CC; Sun, 24 Jan 2021 11:53:26 -0600 (CST) Date: Sun, 24 Jan 2021 11:53:26 -0600 From: Justin Pryzby To: Magnus Hagander Cc: Tom Lane , pgsql-www@postgresql.org Subject: Re: missing ML messages Message-ID: <20210124175326.GA30308@telsasoft.com> References: <20210123025941.GA30285@telsasoft.com> <1287447.1611371258@sss.pgh.pa.us> <20210123031431.GI27167@telsasoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On Sun, Jan 24, 2021 at 02:37:33PM +0100, Magnus Hagander wrote: > On Sat, Jan 23, 2021 at 4:14 AM Justin Pryzby wrote: > > > > On Fri, Jan 22, 2021 at 10:07:38PM -0500, Tom Lane wrote: > > > Justin Pryzby 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: > > > > > > 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