diff options
author | Eric Milkie <milkie@10gen.com> | 2016-07-08 08:52:51 -0400 |
---|---|---|
committer | Eric Milkie <milkie@10gen.com> | 2016-07-08 08:52:51 -0400 |
commit | 7e4412ef2a99ba791b8e345accf851c26656aec7 (patch) | |
tree | 1cdea85fb1fc24322ab39216f92907c0a733cc44 /src | |
parent | 2addaf9a63c60e2311e266c11ad1bcdb12210d0b (diff) | |
download | mongo-7e4412ef2a99ba791b8e345accf851c26656aec7.tar.gz |
Revert "SERVER-24523 Include file and line numbers in assertions"
This reverts commit 744750da3a7173def0c37025e6d21f2c358363b5.
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/util/assert_util.cpp | 51 | ||||
-rw-r--r-- | src/mongo/util/assert_util.h | 134 | ||||
-rwxr-xr-x | src/third_party/s2/base/logging.cc | 2 |
3 files changed, 57 insertions, 130 deletions
diff --git a/src/mongo/util/assert_util.cpp b/src/mongo/util/assert_util.cpp index 0148969aaff..99b4ec6f5a0 100644 --- a/src/mongo/util/assert_util.cpp +++ b/src/mongo/util/assert_util.cpp @@ -165,42 +165,39 @@ NOINLINE_DECL void invariantOKFailed(const char* expr, std::abort(); } -NOINLINE_DECL void fassertFailedWithLocation(int msgid, const char* file, unsigned line) noexcept { - log() << "Fatal Assertion " << msgid << " at " << file << " " << dec << line; +NOINLINE_DECL void fassertFailed(int msgid) noexcept { + log() << "Fatal Assertion " << msgid << endl; breakpoint(); log() << "\n\n***aborting after fassert() failure\n\n" << endl; std::abort(); } -NOINLINE_DECL void fassertFailedNoTraceWithLocation(int msgid, - const char* file, - unsigned line) noexcept { - log() << "Fatal Assertion " << msgid << " at " << file << " " << dec << line; +NOINLINE_DECL void fassertFailedNoTrace(int msgid) noexcept { + log() << "Fatal Assertion " << msgid << endl; breakpoint(); log() << "\n\n***aborting after fassert() failure\n\n" << endl; quickExit(EXIT_ABRUPT); } -MONGO_COMPILER_NORETURN void fassertFailedWithStatusWithLocation(int msgid, - const Status& status, - const char* file, - unsigned line) noexcept { - log() << "Fatal assertion " << msgid << " " << status << " at " << file << " " << dec << line; +MONGO_COMPILER_NORETURN void fassertFailedWithStatus(int msgid, const Status& status) noexcept { + log() << "Fatal assertion " << msgid << " " << status; breakpoint(); log() << "\n\n***aborting after fassert() failure\n\n" << endl; std::abort(); } -MONGO_COMPILER_NORETURN void fassertFailedWithStatusNoTraceWithLocation(int msgid, - const Status& status, - const char* file, - unsigned line) noexcept { - log() << "Fatal assertion " << msgid << " " << status << " at " << file << " " << dec << line; +MONGO_COMPILER_NORETURN void fassertFailedWithStatusNoTrace(int msgid, + const Status& status) noexcept { + log() << "Fatal assertion " << msgid << " " << status; breakpoint(); log() << "\n\n***aborting after fassert() failure\n\n" << endl; quickExit(EXIT_ABRUPT); } +void uasserted(int msgid, const string& msg) { + uasserted(msgid, msg.c_str()); +} + void UserException::appendPrefix(stringstream& ss) const { ss << "userassert:"; } @@ -208,29 +205,19 @@ void MsgAssertionException::appendPrefix(stringstream& ss) const { ss << "massert:"; } -void uassertedWithLocation(int msgid, const string& msg, const char* file, unsigned line) { - uassertedWithLocation(msgid, msg.c_str(), file, line); -} - -NOINLINE_DECL void uassertedWithLocation(int msgid, - const char* msg, - const char* file, - unsigned line) { +NOINLINE_DECL void uasserted(int msgid, const char* msg) { assertionCount.condrollover(++assertionCount.user); - log() << "User Assertion: " << msgid << ":" << msg << ' ' << file << ' ' << dec << line << endl; + LOG(1) << "User Assertion: " << msgid << ":" << msg << endl; throw UserException(msgid, msg); } -void msgassertedWithLocation(int msgid, const string& msg, const char* file, unsigned line) { - msgassertedWithLocation(msgid, msg.c_str(), file, line); +void msgasserted(int msgid, const string& msg) { + msgasserted(msgid, msg.c_str()); } -NOINLINE_DECL void msgassertedWithLocation(int msgid, - const char* msg, - const char* file, - unsigned line) { +NOINLINE_DECL void msgasserted(int msgid, const char* msg) { assertionCount.condrollover(++assertionCount.warning); - log() << "Assertion: " << msgid << ":" << msg << ' ' << file << ' ' << dec << line << endl; + log() << "Assertion: " << msgid << ":" << msg << endl; logContext(); throw MsgAssertionException(msgid, msg); } diff --git a/src/mongo/util/assert_util.h b/src/mongo/util/assert_util.h index bb11227db1a..3e6afbb5eaa 100644 --- a/src/mongo/util/assert_util.h +++ b/src/mongo/util/assert_util.h @@ -179,47 +179,17 @@ MONGO_COMPILER_NORETURN void invariantOKFailed(const char* expr, const char* file, unsigned line) noexcept; void wasserted(const char* expr, const char* file, unsigned line); - -#define fassertFailed MONGO_fassertFailed -#define MONGO_fassertFailed(...) ::mongo::fassertFailedWithLocation(__VA_ARGS__, __FILE__, __LINE__) -MONGO_COMPILER_NORETURN void fassertFailedWithLocation(int msgid, - const char* file, - unsigned line) noexcept; - -#define fassertFailedNoTrace MONGO_fassertFailedNoTrace -#define MONGO_fassertFailedNoTrace(...) \ - ::mongo::fassertFailedNoTraceWithLocation(__VA_ARGS__, __FILE__, __LINE__) -MONGO_COMPILER_NORETURN void fassertFailedNoTraceWithLocation(int msgid, - const char* file, - unsigned line) noexcept; - -#define fassertFailedWithStatus MONGO_fassertFailedWithStatus -#define MONGO_fassertFailedWithStatus(...) \ - ::mongo::fassertFailedWithStatusWithLocation(__VA_ARGS__, __FILE__, __LINE__) -MONGO_COMPILER_NORETURN void fassertFailedWithStatusWithLocation(int msgid, - const Status& status, - const char* file, - unsigned line) noexcept; - -#define fassertFailedWithStatusNoTrace MONGO_fassertFailedWithStatusNoTrace -#define MONGO_fassertFailedWithStatusNoTrace(...) \ - ::mongo::fassertFailedWithStatusNoTraceWithLocation(__VA_ARGS__, __FILE__, __LINE__) -MONGO_COMPILER_NORETURN void fassertFailedWithStatusNoTraceWithLocation(int msgid, - const Status& status, - const char* file, - unsigned line) noexcept; +MONGO_COMPILER_NORETURN void fassertFailed(int msgid) noexcept; +MONGO_COMPILER_NORETURN void fassertFailedNoTrace(int msgid) noexcept; +MONGO_COMPILER_NORETURN void fassertFailedWithStatus(int msgid, const Status& status) noexcept; +MONGO_COMPILER_NORETURN void fassertFailedWithStatusNoTrace(int msgid, + const Status& status) noexcept; /** a "user assertion". throws UserAssertion. logs. typically used for errors that a user could cause, such as duplicate key, disk full, etc. */ -MONGO_COMPILER_NORETURN void uassertedWithLocation(int msgid, - const char* msg, - const char* file, - unsigned line); -MONGO_COMPILER_NORETURN void uassertedWithLocation(int msgid, - const std::string& msg, - const char* file, - unsigned line); +MONGO_COMPILER_NORETURN void uasserted(int msgid, const char* msg); +MONGO_COMPILER_NORETURN void uasserted(int msgid, const std::string& msg); /** msgassert and massert are for errors that are internal but have a well defined error text std::string. a stack trace is logged. @@ -227,14 +197,8 @@ MONGO_COMPILER_NORETURN void uassertedWithLocation(int msgid, MONGO_COMPILER_NORETURN void msgassertedNoTrace(int msgid, const char* msg); MONGO_COMPILER_NORETURN void msgassertedNoTrace(int msgid, const std::string& msg); MONGO_COMPILER_NORETURN void msgassertedNoTraceWithStatus(int msgid, const Status& status); -MONGO_COMPILER_NORETURN void msgassertedWithLocation(int msgid, - const char* msg, - const char* file, - unsigned line); -MONGO_COMPILER_NORETURN void msgassertedWithLocation(int msgid, - const std::string& msg, - const char* file, - unsigned line); +MONGO_COMPILER_NORETURN void msgasserted(int msgid, const char* msg); +MONGO_COMPILER_NORETURN void msgasserted(int msgid, const std::string& msg); /* convert various types of exceptions to strings */ std::string causedBy(const char* e); @@ -244,31 +208,21 @@ std::string causedBy(const std::string& e); std::string causedBy(const std::string* e); std::string causedBy(const Status& e); -#define fassert MONGO_fassert -#define MONGO_fassert(...) ::mongo::fassertWithLocation(__VA_ARGS__, __FILE__, __LINE__) - /** aborts on condition failure */ -inline void fassertWithLocation(int msgid, bool testOK, const char* file, unsigned line) { - if (MONGO_unlikely(!testOK)) { - fassertFailedWithLocation(msgid, file, line); - } +inline void fassert(int msgid, bool testOK) { + if (MONGO_unlikely(!testOK)) + fassertFailed(msgid); } -inline void fassertWithLocation(int msgid, const Status& status, const char* file, unsigned line) { +inline void fassert(int msgid, const Status& status) { if (MONGO_unlikely(!status.isOK())) { - fassertFailedWithStatusWithLocation(msgid, status, file, line); + fassertFailedWithStatus(msgid, status); } } -#define fassertNoTrace MONGO_fassertNoTrace -#define MONGO_fassertNoTrace(...) \ - ::mongo::fassertNoTraceWithLocation(__VA_ARGS__, __FILE__, __LINE__) -inline void fassertNoTraceWithLocation(int msgid, - const Status& status, - const char* file, - unsigned line) { +inline void fassertNoTrace(int msgid, const Status& status) { if (MONGO_unlikely(!status.isOK())) { - fassertNoTraceWithLocation(msgid, status, file, line); + fassertFailedWithStatusNoTrace(msgid, status); } } @@ -281,32 +235,23 @@ inline void fassertNoTraceWithLocation(int msgid, * MONGO_COMPILER_UNREACHABLE as it is impossible to mark a lambda noreturn. */ #define uassert MONGO_uassert -#define MONGO_uassert(msgid, msg, expr) \ - do { \ - if (MONGO_unlikely(!(expr))) { \ - [&]() MONGO_COMPILER_COLD_FUNCTION { \ - ::mongo::uassertedWithLocation(msgid, msg, __FILE__, __LINE__); \ - }(); \ - MONGO_COMPILER_UNREACHABLE; \ - } \ +#define MONGO_uassert(msgid, msg, expr) \ + do { \ + if (MONGO_unlikely(!(expr))) { \ + [&]() MONGO_COMPILER_COLD_FUNCTION { ::mongo::uasserted(msgid, msg); }(); \ + MONGO_COMPILER_UNREACHABLE; \ + } \ } while (false) -#define uasserted MONGO_uasserted -#define MONGO_uasserted(...) ::mongo::uassertedWithLocation(__VA_ARGS__, __FILE__, __LINE__) - -#define uassertStatusOK MONGO_uassertStatusOK -#define MONGO_uassertStatusOK(...) \ - ::mongo::uassertStatusOKWithLocation(__VA_ARGS__, __FILE__, __LINE__) - -inline void uassertStatusOKWithLocation(const Status& status, const char* file, unsigned line) { - if (MONGO_unlikely(!status.isOK())) { - uasserted((status.location() != 0 ? status.location() : status.code()), status.reason()); - } +inline void uassertStatusOK(const Status& status) { + uassert((status.location() != 0 ? status.location() : status.code()), + status.reason(), + status.isOK()); } template <typename T> -inline T uassertStatusOKWithLocation(StatusWith<T> sw, const char* file, unsigned line) { - uassertStatusOKWithLocation(sw.getStatus(), file, line); +inline T uassertStatusOK(StatusWith<T> sw) { + uassertStatusOK(sw.getStatus()); return std::move(sw.getValue()); } @@ -339,23 +284,18 @@ inline void fassertStatusOK(int msgid, const Status& s) { display happening. */ #define massert MONGO_massert -#define MONGO_massert(msgid, msg, expr) \ - do { \ - if (MONGO_unlikely(!(expr))) { \ - [&]() MONGO_COMPILER_COLD_FUNCTION { \ - ::mongo::msgassertedWithLocation(msgid, msg, __FILE__, __LINE__); \ - }(); \ - MONGO_COMPILER_UNREACHABLE; \ - } \ +#define MONGO_massert(msgid, msg, expr) \ + do { \ + if (MONGO_unlikely(!(expr))) { \ + [&]() MONGO_COMPILER_COLD_FUNCTION { ::mongo::msgasserted(msgid, msg); }(); \ + MONGO_COMPILER_UNREACHABLE; \ + } \ } while (false) -#define msgasserted MONGO_msgasserted -#define MONGO_msgasserted(...) ::mongo::msgassertedWithLocation(__VA_ARGS__, __FILE__, __LINE__) - inline void massertStatusOK(const Status& status) { - if (MONGO_unlikely(!status.isOK())) { - msgasserted((status.location() != 0 ? status.location() : status.code()), status.reason()); - } + massert((status.location() != 0 ? status.location() : status.code()), + status.reason(), + status.isOK()); } inline void massertNoTraceStatusOK(const Status& status) { diff --git a/src/third_party/s2/base/logging.cc b/src/third_party/s2/base/logging.cc index 503037c89e7..cc5243a27b8 100755 --- a/src/third_party/s2/base/logging.cc +++ b/src/third_party/s2/base/logging.cc @@ -40,5 +40,5 @@ LogMessageFatal::LogMessageFatal(const char* file, int line) : LogMessageFatal::~LogMessageFatal() { _lsb.~LogstreamBuilder(); - fassertFailed(40048); + mongo::fassertFailed(0); } |