| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
destruction order issues during shutdown
|
|
|
|
|
| |
This commit also adds a new opt=off Ubuntu 18.04 builder to better
ensure dev environments function correctly.
|
| |
|
|
|
|
|
|
|
| |
o converting some log lines that were missed
o fixing some missing includes
create mode 100644 src/mongo/transport/ismaster_metrics.cpp
|
| |
|
|
|
|
| |
MongoDB 4.4
|
| |
|
|
|
|
| |
This additional commit fixes an ASAN failure.
|
| |
|
|
|
|
| |
This reverts commit 695146e648e032e04d97bb0b4de873272c242f04.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
This review does several related things:
- Modifies the Mutex type to have one Identity object per invocation context
- Adds a latchAnalysis field to serverStatus
- Officially turns on CI-only failure for acq level violations
- Changes a few acq level declarations to be more permissive
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Interruptible and Mutex
This commit:
- Adds Listener hooks for Interruptible
- Expands Listener hooks for Mutex
- Updates the DiagnosticInfo and its tests to use the new hooks
- Removes stacktracing pieces from DiagnosticInfo and its tests
- Removes mongo::ConditionVariable entirely in favor of Interruptible
|
| |
|
|
|
|
| |
This reverts commit a40b196bd3cecd0b66a6323f57e6f08efe0af392.
|
| |
|
|
|
|
| |
This reverts commit 96da177c6ae7b7ed0f29983ad033d8a59524b0b2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a very low-level bare metal header, and should ideally
#include only std headers.
- Remove Decimal128 dependency from endian.h. Decimal128 doesn't
need endian conversions, and makes endian.h transitively include
several higher-level mongo specifics. Current conversions are
underspecified and mathematically incorrect or at least ambiguous.
They swap the order within each of the low64 and high64 fields,
but don't swap them with each other. This is behavior needed only
by one spot in db/pipeline/value.cpp to deserialize NumberDecimal,
so we can just inline the behavior there and remove it from
endian.h.
- Remove MONGO_CONFIG_BYTE_ORDER from config.h. The running compiler
holds the ultimate truth on what the target endianness is
(available via _BYTE_ORDER_). We should not read it from a config
header. The names exported into C++ code for the endian
possibilities can be changed to line up with those in C++20's
std::endian {big,little,native} enum. This eliminates the
Scons<=>C++ bridge protocol of "1234" and "4321" magic numbers.
Scons will talk to the compiler, not directly to the code.
- Use enum expressions (including if constexpr) rather than #if for
branching on endianness. This makes bit-rot of unexecuted paths
less likely, and is just cleaner C++.
- Remove bswap_slow variants. All supported compilers have builtin
bswap operations. Can reduce to a simple MSVC vs GCC branching.
All compilers have a builtin, so remove the bswap_slow"
implementation.
- Don't need all the push_macro / pop_macro stuff, or really any
macros at all. Just rely on inline C++ functions. These optimize to
the same thing.
- Don't need ByteOrderConverter or IntegralTypeMap traits either.
Simpler metaprogramming based only on sizeof will work fine.
All in all we can remove about 400 lines of old code here and
shave some low-level edges off of the dependency graph.
- benchmark
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Respecify PseudoRandom and SecureRandom as template instances of
a `mongo::RandomBase<Urbg>` (Urbg is a UniformRandomBitGenerator).
They will only vary in which algorithm they use for their source
bits, and should otherwise support the same exact operations (e.g.
`nextCanonicalDouble`).
Fix range and stats errors in the implementations of those
RandomBase methods, and specify them in terms of the vetted
`<random>` facilities.
Test uniformity of nextInt32(max), which uses an inappropriate
( x % max) operation. Verify that refactor fixes this issue.
Just keep a shared urandom file descriptor open.
SecureRandom add fill, remove create, fix callers
Obsoletes SERVER-43643 Re: SecureRandom 8kiB buffering
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
A few headers are special; they aren't really multiply included
headers. Those headers still hold their anonymous namespace
blocks.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
`MONGO_COMPILER_NOINLINE`
Also removed the `PACKED_DECL`, since it isn't used.
|
| |
|
|
|
|
|
|
|
| |
This header circumvented bad formatting which `clang-format-3.8`
imparted to `if constexpr`. Now `clang-format-7.0.1` imparts
a reasonable format to `if constexpr` so this header is not
needed anymore.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also add unary operator+, operator-.
|
|
|
|
|
|
|
| |
- avoid signed overflow and integer promotion
- no std::signbit, avoid cast warnings in abs
- restore libbase->intelfp dependency back to public LIDEP
- volatile test
|
| |
|
| |
|