In case previous notmuch compact has been interrupted there is old work-in-progress database compact directory partially filled. Remove it just before starting to fill the directory with new files. --- lib/database.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/database.cc b/lib/database.cc index 6b656e9..78693b7 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -918,6 +918,11 @@ notmuch_database_compact (const char* path, goto DONE; } + // Unconditionally attempt to remove old work-in-progress database (if any). + // This is "protected" by database lock. If this fails due to write errors + // (etc), the following code will fail and provide error message. + (void) rmtree (compact_xapian_path); + try { NotmuchCompactor compactor(status_cb, closure); -- 1.8.3.1