[PATCH 4/4] database: Handle error while deleting uncompacted database
Ben Gamari
bgamari.foss at gmail.com
Mon Oct 28 15:23:17 PDT 2013
We never checked to ensure that the rmtree() of the old database
succeeded.
Signed-off-by: Ben Gamari <bgamari.foss at gmail.com>
---
lib/database.cc | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/lib/database.cc b/lib/database.cc
index 34753ab..bfc5dac 100644
--- a/lib/database.cc
+++ b/lib/database.cc
@@ -934,7 +934,19 @@ notmuch_database_compact (const char* path,
goto DONE;
}
} else {
- rmtree(xapian_path);
+ if (rmtree(xapian_path)) {
+ fprintf (stderr, "Error removing old database: %s\n",
+ strerror(errno));
+ fprintf (stderr, "\n");
+ fprintf (stderr, "Old database: %s\n", xapian_path);
+ fprintf (stderr, "\n");
+ fprintf (stderr, "Please remove the old database and move the compacted one in to place manually with\n");
+ fprintf (stderr, "\n");
+ fprintf (stderr, " mv %s %s\n", compact_xapian_path, xapian_path);
+ fprintf (stderr, "\n");
+ ret = NOTMUCH_STATUS_FILE_ERROR;
+ goto DONE;
+ }
}
if (rename(compact_xapian_path, xapian_path)) {
--
1.8.3.2
More information about the notmuch
mailing list