diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-26 23:45:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-26 23:45:00 +0100 |
commit | abec34cb3ec406046af784793a6f8ce107f807dd (patch) | |
tree | 453ce8eadae0d36c7ecfd6723e18711f61b9ef9f /searchcore | |
parent | 071b59a8c58d6e5f493bba2b8ec08cb000003958 (diff) | |
parent | 3a0ab5a2d6ac2b7d94a2726862e4cd722c7c34a1 (diff) |
Merge pull request #20943 from vespa-engine/balder/avoid-explicit-close-1
- assert result of Close() in destructor of FastOS_File and FastOS_Bu…
Diffstat (limited to 'searchcore')
3 files changed, 26 insertions, 39 deletions
diff --git a/searchcore/src/apps/vespa-gen-testdocs/vespa-gen-testdocs.cpp b/searchcore/src/apps/vespa-gen-testdocs/vespa-gen-testdocs.cpp index 6e8223399e6..1d1fda70f8f 100644 --- a/searchcore/src/apps/vespa-gen-testdocs/vespa-gen-testdocs.cpp +++ b/searchcore/src/apps/vespa-gen-testdocs/vespa-gen-testdocs.cpp @@ -18,7 +18,6 @@ LOG_SETUP("vespa-gen-testdocs"); typedef vespalib::hash_set<vespalib::string> StringSet; typedef std::vector<vespalib::string> StringArray; -typedef std::shared_ptr<StringArray> StringArraySP; using namespace vespalib::alloc; using vespalib::string; @@ -38,10 +37,7 @@ void usageHeader() { using std::cerr; - cerr << - "vespa-gen-testdocs version 0.0\n" - "\n" - "USAGE:\n"; + cerr << "vespa-gen-testdocs version 0.0\n\nUSAGE:\n"; } string @@ -71,8 +67,7 @@ splitArg(const string &arg) } void -shafile(const string &baseDir, - const string &file) +shafile(const string &baseDir, const string &file) { unsigned char digest[EVP_MAX_MD_SIZE]; unsigned int digest_len = 0; @@ -98,7 +93,6 @@ shafile(const string &baseDir, EVP_DigestUpdate(md_ctx.get(), buf.get(), thistime); remainder -= thistime; } - f.Close(); EVP_DigestFinal_ex(md_ctx.get(), &digest[0], &digest_len); assert(digest_len > 0u && digest_len <= EVP_MAX_MD_SIZE); for (unsigned int i = 0; i < digest_len; ++i) { @@ -106,10 +100,7 @@ shafile(const string &baseDir, os.fill('0'); os << std::hex << static_cast<unsigned int>(digest[i]); } - LOG(info, - "SHA256(%s)= %s", - file.c_str(), - os.str().c_str()); + LOG(info, "SHA256(%s)= %s", file.c_str(), os.str().c_str()); } class StringGenerator @@ -119,14 +110,9 @@ class StringGenerator public: StringGenerator(vespalib::Rand48 &rnd); - void - rand_string(string &res, uint32_t minLen, uint32_t maxLen); + void rand_string(string &res, uint32_t minLen, uint32_t maxLen); - void - rand_unique_array(StringArray &res, - uint32_t minLen, - uint32_t maxLen, - uint32_t size); + void rand_unique_array(StringArray &res, uint32_t minLen, uint32_t maxLen, uint32_t size); }; @@ -590,7 +576,8 @@ DocumentGenerator::generate(uint32_t docMin, uint32_t docIdLimit, } } f.Flush(); - f.Close(); + bool close_ok = f.Close(); + assert(close_ok); LOG(info, "Calculating sha256 for %s", feedFileName.c_str()); shafile(baseDir, feedFileName); } diff --git a/searchcore/src/vespa/searchcore/proton/common/hw_info_sampler.cpp b/searchcore/src/vespa/searchcore/proton/common/hw_info_sampler.cpp index 2f0db6083c7..c21bb0866cf 100644 --- a/searchcore/src/vespa/searchcore/proton/common/hw_info_sampler.cpp +++ b/searchcore/src/vespa/searchcore/proton/common/hw_info_sampler.cpp @@ -79,29 +79,31 @@ void writeConfig(const vespalib::string &path, double measureDiskWriteSpeed(const vespalib::string &path, size_t diskWriteLen) { - FastOS_File testFile; vespalib::string fileName = path + "/hwinfo-writespeed"; size_t bufferLen = 1_Mi; Alloc buffer(Alloc::allocMMap(bufferLen)); memset(buffer.get(), 0, buffer.size()); - testFile.EnableDirectIO(); - testFile.OpenWriteOnlyTruncate(fileName.c_str()); - sync(); - sleep(1); - sync(); - sleep(1); - Clock::time_point before = Clock::now(); - size_t residue = diskWriteLen; - while (residue > 0) { - size_t writeNow = std::min(residue, bufferLen); - testFile.WriteBuf(buffer.get(), writeNow); - residue -= writeNow; + double diskWriteSpeed; + { + FastOS_File testFile; + testFile.EnableDirectIO(); + testFile.OpenWriteOnlyTruncate(fileName.c_str()); + sync(); + sleep(1); + sync(); + sleep(1); + Clock::time_point before = Clock::now(); + size_t residue = diskWriteLen; + while (residue > 0) { + size_t writeNow = std::min(residue, bufferLen); + testFile.WriteBuf(buffer.get(), writeNow); + residue -= writeNow; + } + Clock::time_point after = Clock::now(); + double elapsed = vespalib::to_s(after - before); + diskWriteSpeed = diskWriteLen / elapsed / 1_Mi; } - Clock::time_point after = Clock::now(); - testFile.Close(); vespalib::unlink(fileName); - double elapsed = vespalib::to_s(after - before); - double diskWriteSpeed = diskWriteLen / elapsed / 1_Mi; return diskWriteSpeed; } diff --git a/searchcore/src/vespa/searchcore/proton/server/fileconfigmanager.cpp b/searchcore/src/vespa/searchcore/proton/server/fileconfigmanager.cpp index 9a525731d0d..34369a0803e 100644 --- a/searchcore/src/vespa/searchcore/proton/server/fileconfigmanager.cpp +++ b/searchcore/src/vespa/searchcore/proton/server/fileconfigmanager.cpp @@ -68,7 +68,6 @@ fsyncFile(const vespalib::string &fileName) if (!f.Sync()) { LOG(error, "Could not fsync file '%s'", fileName.c_str()); } - f.Close(); } template <class Config> @@ -131,7 +130,6 @@ ConfigFile::ConfigFile(const vespalib::string &name, const vespalib::string &ful _content.resize(fileSize); file.ReadBuf(&_content[0], fileSize); _modTime = file.GetModificationTime(); - file.Close(); } nbostream & |