Merge remote-tracking branch 'upstream/release-6.2' into anoyes/merge-6.2-to-6.3

Commit conflict markers for now
This commit is contained in:
Andrew Noyes 2021-01-21 17:54:26 +00:00
commit 281151ff20
12 changed files with 1677 additions and 4 deletions

View File

@ -167,6 +167,12 @@ add_subdirectory(tests)
if(WITH_PYTHON)
add_subdirectory(bindings)
endif()
<<<<<<< HEAD
=======
add_subdirectory(fdbbackup)
add_subdirectory(contrib)
add_subdirectory(tests)
>>>>>>> upstream/release-6.2
if(WITH_DOCUMENTATION)
add_subdirectory(documentation)
endif()

View File

@ -157,7 +157,11 @@ endif()
# - OUT_DIR the directory where files will be staged
# - CONTEXT the type of correctness package being built (e.g. 'valgrind correctness')
function(stage_correctness_package)
<<<<<<< HEAD
set(oneValueArgs OUT_DIR CONTEXT)
=======
set(oneValueArgs OUT_DIR CONTEXT OUT_FILES)
>>>>>>> upstream/release-6.2
cmake_parse_arguments(STAGE "" "${oneValueArgs}" "" "${ARGN}")
file(MAKE_DIRECTORY ${STAGE_OUT_DIR}/bin)
string(LENGTH "${CMAKE_SOURCE_DIR}/tests/" base_length)
@ -200,6 +204,13 @@ function(stage_correctness_package)
endforeach()
endforeach()
list(APPEND package_files ${STAGE_OUT_DIR}/bin/fdbserver
<<<<<<< HEAD
=======
${STAGE_OUT_DIR}/bin/coverage.fdbserver.xml
${STAGE_OUT_DIR}/bin/coverage.fdbclient.xml
${STAGE_OUT_DIR}/bin/coverage.fdbrpc.xml
${STAGE_OUT_DIR}/bin/coverage.flow.xml
>>>>>>> upstream/release-6.2
${STAGE_OUT_DIR}/bin/TestHarness.exe
${STAGE_OUT_DIR}/bin/TraceLogHelper.dll
${STAGE_OUT_DIR}/CMakeCache.txt
@ -208,17 +219,37 @@ function(stage_correctness_package)
OUTPUT ${package_files}
DEPENDS ${CMAKE_BINARY_DIR}/CMakeCache.txt
${CMAKE_BINARY_DIR}/packages/bin/fdbserver
<<<<<<< HEAD
=======
${CMAKE_BINARY_DIR}/bin/coverage.fdbserver.xml
${CMAKE_BINARY_DIR}/lib/coverage.fdbclient.xml
${CMAKE_BINARY_DIR}/lib/coverage.fdbrpc.xml
${CMAKE_BINARY_DIR}/lib/coverage.flow.xml
>>>>>>> upstream/release-6.2
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/CMakeCache.txt ${STAGE_OUT_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/packages/bin/fdbserver
<<<<<<< HEAD
=======
${CMAKE_BINARY_DIR}/bin/coverage.fdbserver.xml
${CMAKE_BINARY_DIR}/lib/coverage.fdbclient.xml
${CMAKE_BINARY_DIR}/lib/coverage.fdbrpc.xml
${CMAKE_BINARY_DIR}/lib/coverage.flow.xml
>>>>>>> upstream/release-6.2
${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe
${CMAKE_BINARY_DIR}/packages/bin/TraceLogHelper.dll
${STAGE_OUT_DIR}/bin
COMMENT "Copying files for ${STAGE_CONTEXT} package"
)
list(APPEND package_files ${test_files} ${external_files})
<<<<<<< HEAD
set(package_files ${package_files} PARENT_SCOPE)
=======
if(STAGE_OUT_FILES)
set(${STAGE_OUT_FILES} ${package_files} PARENT_SCOPE)
endif()
>>>>>>> upstream/release-6.2
endfunction()
function(create_correctness_package)
@ -226,7 +257,11 @@ function(create_correctness_package)
return()
endif()
set(out_dir "${CMAKE_BINARY_DIR}/correctness")
<<<<<<< HEAD
stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "correctness")
=======
stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "correctness" OUT_FILES package_files)
>>>>>>> upstream/release-6.2
set(tar_file ${CMAKE_BINARY_DIR}/packages/correctness-${CMAKE_PROJECT_VERSION}.tar.gz)
add_custom_command(
OUTPUT ${tar_file}
@ -253,7 +288,11 @@ function(create_valgrind_correctness_package)
endif()
if(USE_VALGRIND)
set(out_dir "${CMAKE_BINARY_DIR}/valgrind_correctness")
<<<<<<< HEAD
stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "valgrind correctness")
=======
stage_correctness_package(OUT_DIR ${out_dir} CONTEXT "valgrind correctness" OUT_FILES package_files)
>>>>>>> upstream/release-6.2
set(tar_file ${CMAKE_BINARY_DIR}/packages/valgrind-${CMAKE_PROJECT_VERSION}.tar.gz)
add_custom_command(
OUTPUT ${tar_file}

View File

@ -1,5 +1,8 @@
if(NOT WIN32)
<<<<<<< HEAD
add_subdirectory(monitoring)
=======
>>>>>>> upstream/release-6.2
add_subdirectory(TraceLogHelper)
add_subdirectory(TestHarness)
endif()

View File

@ -3,7 +3,11 @@ set(SRCS
Properties/AssemblyInfo.cs)
set(TEST_HARNESS_REFERENCES
<<<<<<< HEAD
"-r:System,System.Core,System.Xml.Linq,System.Data.DataSetExtensions,Microsoft.CSharp,System.Data,System.Xml,${TraceLogHelperDll}")
=======
"-r:System,System.Core,System.Xml.Linq,System.Data.DataSetExtensions,Microsoft.CSharp,System.Data,System.Xml,System.Runtime.Serialization,${TraceLogHelperDll}")
>>>>>>> upstream/release-6.2
set(out_file ${CMAKE_BINARY_DIR}/packages/bin/TestHarness.exe)

File diff suppressed because it is too large Load Diff

View File

@ -51,7 +51,11 @@ namespace Magnesium
}
catch (Exception e)
{
<<<<<<< HEAD
throw new Exception(string.Format("Failed to parse {0}", root), e);
=======
throw new Exception(string.Format("Failed to parse JSON {0}", root), e);
>>>>>>> upstream/release-6.2
}
if (ev != null) yield return ev;
}
@ -81,7 +85,11 @@ namespace Magnesium
DDetails = xEvent.Elements()
.Where(a=>a.Name != "Type" && a.Name != "Time" && a.Name != "Machine" && a.Name != "ID" && a.Name != "Severity" && (!rolledEvent || a.Name != "OriginalTime"))
.ToDictionary(a=>string.Intern(a.Name.LocalName), a=>(object)a.Value),
<<<<<<< HEAD
original = keepOriginalElement ? xEvent : null,
=======
original = keepOriginalElement ? xEvent : null
>>>>>>> upstream/release-6.2
};
}

View File

@ -53,7 +53,11 @@ namespace Magnesium
}
catch (Exception e)
{
<<<<<<< HEAD
throw new Exception(string.Format("Failed to parse {0}", xev), e);
=======
throw new Exception(string.Format("Failed to parse XML {0}", xev), e);
>>>>>>> upstream/release-6.2
}
if (ev != null) yield return ev;
}

View File

@ -304,12 +304,12 @@ public:
class CurrentRunningFetchKeys {
std::unordered_map<UID, double> startTimeMap;
std::unordered_map<UID, KeyRangeRef> keyRangeMap;
std::unordered_map<UID, KeyRange> keyRangeMap;
static const StringRef emptyString;
static const KeyRangeRef emptyKeyRange;
public:
void recordStart(const UID id, const KeyRange keyRange) {
void recordStart(const UID id, const KeyRange& keyRange) {
startTimeMap[id] = now();
keyRangeMap[id] = keyRange;
}
@ -319,7 +319,7 @@ public:
keyRangeMap.erase(id);
}
std::pair<double, KeyRangeRef> longestTime() const {
std::pair<double, KeyRange> longestTime() const {
if (numRunning() == 0) {
return {-1, emptyKeyRange};
}

View File

@ -144,6 +144,7 @@ void FlowKnobs::initialize(bool randomize, bool isSimulated) {
init( TSC_YIELD_TIME, 1000000 );
init( MIN_LOGGED_PRIORITY_BUSY_FRACTION, 0.05 );
init( CERT_FILE_MAX_SIZE, 5 * 1024 * 1024 );
init( READY_QUEUE_RESERVED_SIZE, 8192 );
//Network
init( PACKET_LIMIT, 100LL<<20 );

View File

@ -162,6 +162,7 @@ public:
int64_t REACTOR_FLAGS;
double MIN_LOGGED_PRIORITY_BUSY_FRACTION;
int CERT_FILE_MAX_SIZE;
int READY_QUEUE_RESERVED_SIZE;
//Network
int64_t PACKET_LIMIT;

View File

@ -113,6 +113,16 @@ struct OrderedTask {
bool operator < (OrderedTask const& rhs) const { return priority < rhs.priority; }
};
template <class T>
class ReadyQueue : public std::priority_queue<T, std::vector<T>>
{
public:
typedef typename std::priority_queue<T, std::vector<T>>::size_type size_type;
ReadyQueue(size_type capacity = 0) { reserve(capacity); };
void reserve(size_type capacity) { this->c.reserve(capacity); }
};
thread_local INetwork* thread_network = 0;
class Net2 sealed : public INetwork, public INetworkConnections {
@ -201,7 +211,7 @@ public:
NetworkMetrics::PriorityStats* lastPriorityStats;
std::priority_queue<OrderedTask, std::vector<OrderedTask>> ready;
ReadyQueue<OrderedTask> ready;
ThreadSafeQueue<OrderedTask> threadReady;
struct DelayedTask : OrderedTask {
@ -947,6 +957,7 @@ Net2::Net2(const TLSConfig& tlsConfig, bool useThreadPool, bool useMetrics)
reactor(this),
stopped(false),
tasksIssued(0),
ready(FLOW_KNOBS->READY_QUEUE_RESERVED_SIZE),
// Until run() is called, yield() will always yield
tscBegin(0), tscEnd(0), taskBegin(0), currentTaskID(TaskPriority::DefaultYield),
numYields(0),

View File

@ -255,4 +255,9 @@ if(WITH_PYTHON)
create_valgrind_correctness_package()
endif()
endif()
<<<<<<< HEAD
=======
else()
message(WARNING "Python not found, won't configure ctest")
>>>>>>> upstream/release-6.2
endif()