From: Michael J Gruber <git@grubix.eu>
To: andreas@rammhold.de, notmuch@notmuchmail.org
Subject: Re: [RFC 0/2] add --new-tags= to notmuch-new(1)
Date: Thu, 16 Sep 2021 14:03:04 +0200 [thread overview]
Message-ID: <163179378465.773443.12112139662488774678.git@grubix.eu> (raw)
In-Reply-To: <20210916102517.1744389-1-andreas@rammhold.de>
andreas@rammhold.de venit, vidit, dixit 2021-09-16 12:25:15:
> I've recently became a little annoyed with a race condition in my current
> notmuch setup that originates from only having a single set of new tags for
> all notmuch-new(1) invocations. In the past I've mentioned this a couple of
> times in the IRC channel and now I got around to implement a basic version of
> this.
>
> I rougly process new messages like this:
>
> 1. new messages get the "new" tag through notmuch-new(1),
> 2. the post-new hook calls a series of scripts
...
> There are right now 8 mailboxes that I am retrieving mails from. I have a
> scheduled job that updates all my local Maildir's every couple of minutes.
> That one doesn't cause any issues on its own.
>
> But I also use IMAP IDLE to selectively update Maildir's as soon as a new mail
> arrives.
>
> If I receive mails on multiple Maildir's within a short period of time the
> above process is running into race-conditions since there is no way to
> distinguish mails that have just been marked new. All of them carry the same
> tags.
>
> In the worst case one of the last steps (2c/2d) would pick up the new mail
> before any of the actual classification has been executed. This "leaks" mails
> into my inbox which consequently can be overwhelming to look at.
>
> With this series I am able to give each notmuch-new(1) invocation a unique tag
> (think: new-$(uuidgen)). This doesn't (on its own) solve the entire story but
> is a first step in the "right direction" IMHO. I still have to wrap the entire
I very much sympathize with your setup. But I think the real solution
would be one of these options:
- use a lock file to prevent your scripts from running concurrently OR
- match "tag:new and folder:UNIQUEFOLDER" (or "path:FOO/**")
This should be a perfect substitute for your new-UNIQUE tag.
As for the implementation you suggest: Basically, you implement
overriding the "new.tags" config, and I'm wondering whether it would be
worthwhile to implement "notmuch --config-value" instead:
--config-value=SECTION.ITEM=VALUE
Override the config setting for SECTION.ITEM with the VALUE for
this invocation. This takes precedence over any setting in the
config file.
I know this raises the question which config any hooks will see, but
that is the same for your implementation.
You can override the complete config by specifying a different file
already, of course, so you could script that.
Cheers
Michael
next prev parent reply other threads:[~2021-09-16 12:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-16 10:25 [RFC 0/2] add --new-tags= to notmuch-new(1) andreas
2021-09-16 10:25 ` [RFC 1/2] lib/config: introduce notmuch_config_values_from_string function andreas
2021-09-16 10:25 ` [RFC 2/2] CLI/notmuch: add --new-tags argument to notmuch-new(1) andreas
2021-09-16 12:03 ` Michael J Gruber [this message]
2021-09-16 12:24 ` [RFC 0/2] add --new-tags= " andreas
2021-09-16 14:43 ` Michael J Gruber
2021-09-20 23:57 ` David Bremner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=163179378465.773443.12112139662488774678.git@grubix.eu \
--to=git@grubix.eu \
--cc=andreas@rammhold.de \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).