Re: Large delays in mailing list delivery?
From: Jeff King <hidden>
Date: 2021-12-03 21:52:49
On Fri, Dec 03, 2021 at 03:24:27PM -0500, Konstantin Ryabitsev wrote:
On Fri, Dec 03, 2021 at 09:02:48PM +0100, Ævar Arnfjörð Bjarmason wrote:quoted
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