mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
CLI/new: drop the write lock to run the pre-new hook.
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-BADA98498812@bubblegen.co.uk
This commit is contained in:
parent
7d286f0272
commit
a9f74aeeb9
2 changed files with 10 additions and 1 deletions
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue