diff options
author | Luke Chen <luke.chen@mongodb.com> | 2019-04-05 15:42:03 +1100 |
---|---|---|
committer | Luke Chen <luke.chen@mongodb.com> | 2019-04-05 15:42:03 +1100 |
commit | e0148efd023cbf9a6a3fb7a084169e83f10e12f3 (patch) | |
tree | ad38ccf763e3025cc26927de2f05a9facd09dfb0 | |
parent | 648b0838f9661c7a518b3fa92d99b8e1ff970abc (diff) | |
download | mongo-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.data | 8 | ||||
-rw-r--r-- | src/third_party/wiredtiger/src/cursor/cur_backup.c | 14 |
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); } |