git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Large delays in mailing list delivery?

From
Jeff King <peff@peff.net>
Date
Dec 3, 2021, 21:52 UTC
Message-ID
<YaqRr//Yu8cn+7s7@coredump.intra.peff.net>
In-Reply-To
<20211203202427.o575sgrx4auqkmjp@meerkat.local>
On Fri, Dec 03, 2021 at 03:24:27PM -0500, Konstantin Ryabitsev wrote:
Show 11 quoted lines
> On Fri, Dec 03, 2021 at 09:02:48PM +0100, Ævar Arnfjörð Bjarmason wrote:
> > When I've experienced delays (sometimes of half a day or more) both
> > https://public-inbox.org/git/ and https://lore.kernel.org/git/ have been
> > updated.
> 
> Btw, you can source lore.kernel.org straight into your gmail inbox. :)
> 
>     https://people.kernel.org/monsieuricon/lore-lei-part-1-getting-started
>     https://people.kernel.org/monsieuricon/lore-lei-part-2-now-with-imap
> 
> Or, you can read it via nntp://nntp.lore.kernel.org/.

I've been watching the lei stuff, and it's pretty cool. I was already indexing my local archive with notmuch, so right now I have an "in between" solution where I pull from lore and deliver into a local mailbox, like:

-- >8 -- ROOT=$HOME/.cache/lists

test -n "$QUIET" && exec >/dev/null test $# = 0 && set -- $(cd "$ROOT" && echo *)

for list in "$@"; do
	cd "$ROOT/$list" || exit 1
	git fetch -v ${QUIET:+--quiet} || exit 1
	git rev-list refs/lists/delivered..HEAD |
	git diff-tree --format= --stdin --raw |
	awk '{print $4}' |
	while read blob; do
		test -n "$QUIET" || echo >&2 "Delivering $blob..."
		git cat-file blob "$blob" |
		safecat maildir/tmp maildir/new ||
		exit 1
	done || exit 1
	git update-ref refs/lists/delivered HEAD || exit 1
done
-- >8 --
Some notes:
  - ~/.cache/lists/git is a bare clone of https://lore.kernel.org/git/0;
    I know this will run into problems if we eventually get enough
    messages to start a new epoch, but that's still years away by the
    current counting.
  - maildir in the bare repo is a symlink to the actual maildir I
    deliver to (~/mail/git)
  - I use safecat here to deliver into the maildir, but notmuch-insert
    would probably make more sense.

I think this is less featureful than lei (especially some of the advanced queries), but it was a drop-in replacement for my existing queries and workflows. And it has low dependencies.

Of course it doesn't help much if you're using gmail or something. :) I guess you could replace the safecat delivery with git-imap-send or similar.

It's polling, of course, but I assume that a noop fetch against the lore repo is pretty cheap. I think Eric's public-inbox/lei code for doing updates has an extra HTTP-endpoint check to avoid invoking even the noop Git (though it results in an extra HTTP request when there _is_ something to fetch).

And of course it's holding two copies of the messages (one in Git, and then the delivered one). That's OK for my purposes, but I have noticed that lei is generally much faster to answer queries, because maildirs have awful cold-cache behavior because of all the inodes (and my mailserver is still on spinning disks).

So I don't really recommend anybody going down my same path if they could just jump to using lei. But I thought the script above might help somebody who wants to just replace one small bit of their infrastructure/workflow without retraining fingers, etc.

-Peff
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 7 of 12 in “Large delays in mailing list delivery?”
  1. Elijah NewrenDec 3, 2021
  2. Konstantin RyabitsevDec 3, 2021
  3. Thomas Guyot-SionnestDec 4, 2021
  4. Ævar Arnfjörð BjarmasonDec 3, 2021
  5. Konstantin RyabitsevDec 3, 2021
  6. Ævar Arnfjörð BjarmasonDec 3, 2021
  7. Jeff KingDec 3, 2021
  8. Ævar Arnfjörð BjarmasonDec 6, 2021
  9. Eric WongDec 6, 2021
  10. Using public-inbox+lei+Emacs+mu+mu4e (was: Large delays in mailing list delivery?)Ævar Arnfjörð Bjarmason, Feb 2, 2022
  11. Eric WongFeb 7, 2022
  12. Ævar Arnfjörð BjarmasonDec 7, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.