From 4da8d19f296a9506fbdb6dfadb0602590346e843 Mon Sep 17 00:00:00 2001 From: Joe Thornber Date: Tue, 29 Aug 2017 12:33:32 +0100 Subject: [PATCH] [cache_restore] The metadata version and clean shutdown flags were swapped. Reveal by failing --omit-clean-shutdown test --- caching/cache_restore.cc | 5 +++-- caching/restore_emitter.cc | 4 ++-- caching/restore_emitter.h | 8 +++++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/caching/cache_restore.cc b/caching/cache_restore.cc index 770b0bc..685255e 100644 --- a/caching/cache_restore.cc +++ b/caching/cache_restore.cc @@ -60,8 +60,9 @@ namespace { try { block_manager<>::ptr bm = open_bm(*fs.output, block_manager<>::READ_WRITE); metadata::ptr md(new metadata(bm, metadata::CREATE)); - emitter::ptr restorer = create_restore_emitter(md, fs.clean_shutdown, - fs.metadata_version); + emitter::ptr restorer = create_restore_emitter(md, + fs.metadata_version, + fs.clean_shutdown ? CLEAN_SHUTDOWN : NO_CLEAN_SHUTDOWN); check_file_exists(*fs.input); ifstream in(fs.input->c_str(), ifstream::in); diff --git a/caching/restore_emitter.cc b/caching/restore_emitter.cc index 34c5020..b7a573f 100644 --- a/caching/restore_emitter.cc +++ b/caching/restore_emitter.cc @@ -115,9 +115,9 @@ namespace { emitter::ptr caching::create_restore_emitter(metadata::ptr md, unsigned metadata_version, - bool clean_shutdown) + shutdown_type st) { - return emitter::ptr(new restorer(md, clean_shutdown, metadata_version)); + return emitter::ptr(new restorer(md, st == CLEAN_SHUTDOWN, metadata_version)); } //---------------------------------------------------------------- diff --git a/caching/restore_emitter.h b/caching/restore_emitter.h index 5c077af..a1d45d6 100644 --- a/caching/restore_emitter.h +++ b/caching/restore_emitter.h @@ -7,9 +7,15 @@ //---------------------------------------------------------------- namespace caching { + + enum shutdown_type { + CLEAN_SHUTDOWN, + NO_CLEAN_SHUTDOWN + }; + emitter::ptr create_restore_emitter(metadata::ptr md, unsigned metadata_version, - bool clean_shutdown = true); + shutdown_type st = CLEAN_SHUTDOWN); } //----------------------------------------------------------------