Re: Large delays in mailing list delivery?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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:
> > 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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux