From: Austin Clements Date: Mon, 1 Sep 2014 22:49:07 +0000 (-0400) Subject: lib: Fix endless upgrade problem X-Git-Tag: 0.19_rc1~92 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=cca05ac10e908c2a8d7fdb3beac59bc085de9702 lib: Fix endless upgrade problem 48db8c8 introduced a disagreement between when notmuch_database_needs_upgrade returned TRUE and when notmuch_database_upgrade actually performed an upgrade. As a result, if a database had a version less than 3, but no new features were required, notmuch new would call notmuch_database_upgrade to perform an upgrade, but notmuch_database_upgrade would return immediately without updating the database version. Hence, the next notmuch new would do the same, and so on. Fix this by ensuring that the upgrade-required logic is identical between the two. --- diff --git a/lib/database.cc b/lib/database.cc index 51161889..a3a7cd30 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -1222,7 +1222,7 @@ notmuch_database_upgrade (notmuch_database_t *notmuch, target_features = notmuch->features | NOTMUCH_FEATURES_CURRENT; new_features = NOTMUCH_FEATURES_CURRENT & ~notmuch->features; - if (! new_features) + if (! notmuch_database_needs_upgrade (notmuch)) return NOTMUCH_STATUS_SUCCESS; if (progress_notify) {