summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2019-04-05 15:42:03 +1100
committerLuke Chen <luke.chen@mongodb.com>2019-04-05 15:42:03 +1100
commite0148efd023cbf9a6a3fb7a084169e83f10e12f3 (patch)
treead38ccf763e3025cc26927de2f05a9facd09dfb0
parent648b0838f9661c7a518b3fa92d99b8e1ff970abc (diff)
downloadmongo-e0148efd023cbf9a6a3fb7a084169e83f10e12f3.tar.gz
Import wiredtiger: 1d7a748f9f096ebf39e80ea442b6d3be3fc69381 from branch mongodb-3.4
ref: 7a6598ca9b..1d7a748f9f for: 3.4.21 WT-4615 Sync backup file before returning backup cursor
-rw-r--r--src/third_party/wiredtiger/import.data8
-rw-r--r--src/third_party/wiredtiger/src/cursor/cur_backup.c14
2 files changed, 15 insertions, 7 deletions
diff --git a/src/third_party/wiredtiger/import.data b/src/third_party/wiredtiger/import.data
index 9db71335d7b..bfad8007be0 100644
--- a/src/third_party/wiredtiger/import.data
+++ b/src/third_party/wiredtiger/import.data
@@ -1,6 +1,6 @@
{
- "commit": "7a6598ca9b54c358803aa6290dce618f0abed63f",
- "github": "wiredtiger/wiredtiger.git",
- "vendor": "wiredtiger",
- "branch": "mongodb-3.4"
+ "vendor": "wiredtiger",
+ "github": "wiredtiger/wiredtiger.git",
+ "branch": "mongodb-3.4",
+ "commit": "1d7a748f9f096ebf39e80ea442b6d3be3fc69381"
}
diff --git a/src/third_party/wiredtiger/src/cursor/cur_backup.c b/src/third_party/wiredtiger/src/cursor/cur_backup.c
index 61ced8d11e7..7e7385d108a 100644
--- a/src/third_party/wiredtiger/src/cursor/cur_backup.c
+++ b/src/third_party/wiredtiger/src/cursor/cur_backup.c
@@ -291,16 +291,24 @@ __backup_start(
}
err: /* Close the hot backup file. */
- WT_TRET(__wt_fclose(session, &cb->bfs));
if (srcfs != NULL)
WT_TRET(__wt_fclose(session, &srcfs));
+ /*
+ * Sync and rename the temp file into place.
+ */
+ if (ret == 0)
+ ret = __wt_sync_and_rename(session,
+ &cb->bfs, WT_BACKUP_TMP, dest);
if (ret == 0) {
- WT_ASSERT(session, dest != NULL);
- WT_TRET(__wt_fs_rename(session, WT_BACKUP_TMP, dest, false));
__wt_writelock(session, &conn->hot_backup_lock);
conn->hot_backup_list = cb->list;
__wt_writeunlock(session, &conn->hot_backup_lock);
}
+ /*
+ * If the file hasn't been closed, do it now.
+ */
+ if (cb->bfs != NULL)
+ WT_TRET(__wt_fclose(session, &cb->bfs));
return (ret);
}