<feed xmlns='http://www.w3.org/2005/Atom'>
<title>notmuch/test/T642-database-modified-threads.sh, branch master</title>
<subtitle>thread-based email index, search, and tagging</subtitle>
<id>https://git.notmuchmail.org/git/notmuch/atom?h=master</id>
<link rel='self' href='https://git.notmuchmail.org/git/notmuch/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/'/>
<updated>2025-08-04T13:43:35Z</updated>
<entry>
<title>lib: add notmuch_threads_status()</title>
<updated>2025-08-04T13:43:35Z</updated>
<author>
<name>Anton Khirnov</name>
<email>anton@khirnov.net</email>
</author>
<published>2025-07-28T14:26:56Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=11d373b4fd05f5409bf5c49459fe141d2235f7f5'/>
<id>urn:sha1:11d373b4fd05f5409bf5c49459fe141d2235f7f5</id>
<content type='text'>
While a number of errors can happen when iterating over threads
(DatabaseModifiedError, memory allocation errors, etc.), the API
currently cannot signal them to the caller, and either triggers an
internal error (aborting the caller) or returns NULL from
notmuch_threads_get() with no information on what actually went wrong.

Add a new public function notmuch_threads_status() - similar to
previously added notmuch_messages_status() - that allows propagating
those errors to the caller.

Use this to remove the INTERNAL_ERROR() in _notmuch_thread_create()
(triggered by T642).

Fixes: https://github.com/pazz/alot/issues/1460

Amended-By: db. Resolved whitespace disagreement between emacs and
uncrustify in favour of uncrustify.
</content>
</entry>
<entry>
<title>test: add a known broken test for DatabaseModifiedError from threads iteration</title>
<updated>2025-08-04T13:17:53Z</updated>
<author>
<name>Anton Khirnov</name>
<email>anton@khirnov.net</email>
</author>
<published>2025-07-28T07:37:58Z</published>
<link rel='alternate' type='text/html' href='https://git.notmuchmail.org/git/notmuch/commit/?id=32af882648325ba1a24f031c0d2728b2553a5e6e'/>
<id>urn:sha1:32af882648325ba1a24f031c0d2728b2553a5e6e</id>
<content type='text'>
This is similar to previously added T641, except here we iterate over
threads rather than messages.

After f375ea1add121c428f261473512831a169dfe335, the
DatabaseModifiedError raised by Xapian is now handled in
_notmuch_message_create(), resulting in a NULL message being returned to
_notmuch_thread_create(), which currently triggers an internal error.
</content>
</entry>
</feed>
