[notmuch] [PATCH] Prevent data loss caused by SIGINT during notmuch new
Michal Sojka
sojkam1 at fel.cvut.cz
Sat Mar 27 21:28:03 PDT 2010
On Sun, 28 Mar 2010, Sebastian Spaeth wrote:
> On Sun, 28 Mar 2010 00:37:00 +0100, "Sebastian Spaeth" <Sebastian at SSpaeth.de> wrote:
> > On Fri, 26 Mar 2010 22:18:13 +0100, Michal Sojka <sojkam1 at fel.cvut.cz> wrote:
> > > When Ctrl-C is pressed in a wrong time during notmuch new, it can lead
> > > to removal of messages from the database even if the files were not
> > > removed.
>
> CC -O2 notmuch-new.o
> notmuch-new.c: In function 'add_files_recursive':
> notmuch-new.c:519: error: 'add_files_state_t' has no member named 'interrupted'
> make: *** [notmuch-new.o] Error 1
>
> I have not checked the code yet, but simply applying this patch make the
> compile fail.
Oh, sorry. I thought it is so trivial, that I didn't even compile it for
master. The right version is here:
--8<---------------cut here---------------start------------->8---
>From 117de1fcc316a4792244a36b68e38215ff2a5bdc Mon Sep 17 00:00:00 2001
From: Michal Sojka <sojkam1 at fel.cvut.cz>
Date: Fri, 26 Mar 2010 22:16:26 +0100
Subject: [PATCH v2] Prevent data loss caused by SIGINT during notmuch new
When Ctrl-C is pressed in a wrong time during notmuch new, it can lead
to removal of messages from the database even if the files were not
removed.
It happened at least once to me.
Signed-off-by: Michal Sojka <sojkam1 at fel.cvut.cz>
---
notmuch-new.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/notmuch-new.c b/notmuch-new.c
index 44b50aa..109bef2 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -454,6 +454,9 @@ add_files_recursive (notmuch_database_t *notmuch,
next = NULL;
}
+ if (! interrupted)
+ goto DONE;
+
/* Now that we've walked the whole filesystem list, anything left
* over in the database lists has been deleted. */
while (notmuch_filenames_valid (db_files))
--
1.7.0.2
More information about the notmuch
mailing list