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