From: Art Cancro Date: Sat, 22 Jul 2023 16:24:05 +0000 (-0900) Subject: Aggressively sync X-Git-Tag: v985~1 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=f357d35ddb1302f5583cad58f07aceda7dccb3cb;p=citadel.git Aggressively sync --- diff --git a/citadel/server/database.c b/citadel/server/database.c index 2085dc729..cb5adafca 100644 --- a/citadel/server/database.c +++ b/citadel/server/database.c @@ -296,6 +296,12 @@ void close_databases(void) { int i; int ret; + static int closing = 0; + while (closing == 1) { + syslog(LOG_INFO, "db: already closing"); + } + closing = 1; + syslog(LOG_INFO, "db: performing final checkpoint"); if ((ret = dbenv->txn_checkpoint(dbenv, 0, 0, 0))) { syslog(LOG_ERR, "db: txn_checkpoint: %s", db_strerror(ret)); @@ -314,16 +320,10 @@ void close_databases(void) { if (ret) { syslog(LOG_ERR, "db: db_close: %s", db_strerror(ret)); } - } - // This seemed nifty at the time but did anyone really look at it? - // #ifdef DB_STAT_ALL - // dbenv->lock_stat_print(dbenv, DB_STAT_ALL); - // #endif - // Close the handle. - ret = dbenv->close(dbenv, 0); + ret = dbenv->close(dbenv, DB_FORCESYNC); if (ret) { syslog(LOG_ERR, "db: DBENV->close: %s", db_strerror(ret)); }