Re: [PATCH 2/2] CLI/new: drop the write lock to run the pre-new hook.

2021-03-24 Thread David Bremner
David Bremner  writes:

> This fixes a bug reported in [1]. In principle it could be possible
> avoid one of these reopens, but it complicates the logic in main with
> respect to creating new databases.

I have applied these two patches to master

d
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org


[PATCH 2/2] CLI/new: drop the write lock to run the pre-new hook.

2021-03-18 Thread David Bremner
This fixes a bug reported in [1]. In principle it could be possible
avoid one of these reopens, but it complicates the logic in main with
respect to creating new databases.

[1]: id:9c1993df-84bd-4199-a9c8-bada98498...@bubblegen.co.uk
---
 notmuch-new.c  | 10 ++
 test/T400-hooks.sh |  1 -
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/notmuch-new.c b/notmuch-new.c
index 223d68bb..8214fb23 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -1170,9 +1170,19 @@ notmuch_new_command (unused(notmuch_config_t *config), 
notmuch_database_t *notmu
 }
 
 if (hooks) {
+   /* Drop write lock to run hook */
+   status = notmuch_database_reopen (notmuch, 
NOTMUCH_DATABASE_MODE_READ_ONLY);
+   if (print_status_database ("notmuch new", notmuch, status))
+   return EXIT_FAILURE;
+
ret = notmuch_run_hook (notmuch, "pre-new");
if (ret)
return EXIT_FAILURE;
+
+   /* acquire write lock again */
+   status = notmuch_database_reopen (notmuch, 
NOTMUCH_DATABASE_MODE_READ_WRITE);
+   if (print_status_database ("notmuch new", notmuch, status))
+   return EXIT_FAILURE;
 }
 
 notmuch_exit_if_unmatched_db_uuid (notmuch);
diff --git a/test/T400-hooks.sh b/test/T400-hooks.sh
index a2b67d59..de8e4ba4 100755
--- a/test/T400-hooks.sh
+++ b/test/T400-hooks.sh
@@ -159,7 +159,6 @@ EOF
 test_expect_equal_file write.expected write.output
 
 test_begin_subtest "pre-new with write access [${config}]"
-test_subtest_known_broken
 rm -rf ${HOOK_DIR}
 create_write_hook "pre-new" write.expected write.output $HOOK_DIR
 NOTMUCH_NEW
-- 
2.30.2
___
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-le...@notmuchmail.org