* Generate GNU compatible build-id for mockkms golang binary
Description
diff-1: Fix compilation issue
Generate GNU compatible build-id for mockkms golang binary
Leverage "cgo" to generate build-id
Testing
Debian package build, verified the GNU build-id
* Add JWT support to TokenSign
* Encapsulate OpenSSL public/private key type
Type-safe passing around of keys without having to DER/PEM-serialize
(OpenSSL doesn't have distinct types for public and private key)
* Apply Clang format
* Add verify benchmark for JWT and FlatBuffers token
* Unit test base64url::{encode, decode}
* Make all payload fields optional
Let user code validate non-signature fields
* Make all payload fields optional
Completely defer field check to user code
* Move rapidjson from fdbclient to contrib
* Make fdbrpc's rapidjson linkage private
Currently only sources include them.
* Modify rapidjson path in apiversioner.py
* Algorithm::Unknown > Algorithm::UNKNOWN
* Use execstack to test executable stack permissions
The output of readelf wasn't stable
* Tee output to stdout in pkg_tester "run" function
* Test compiling an app that includes fdb_c.h
Featuring both cmake and pkg_tester, since we intend to support those in
our packages.
* Fix packaging bug
The libdir in the pkg-config file in the packages was wrong
* Add binding tester support for tenants
* Configure tenant_mode=optional_experimental in the binding tester
* Use the special key-space to delete tenants in between binding tester runs.
* Separate tenant tester spec into its own file.
* Set default for USE_JEMALLOC initially in ConfigureCompiler
Instead of trying to change the value later on. This fixes the valgrind
build, which was previously incorrectly getting jemalloc involved.
* Check aligned_alloc result for null
And OOM if so - don't assert
* Check that we can allocate magazines with no internal fragmentation
We may want to do this so that the jemalloc heap profiler has some
knowledge of FastAlloc
* Populate TestFile field for noSim tests in TestHarness
* Remove handling for nonexistent "ActualRun"
* Add contrib/debug_determinism
Add an instrumentation-based technique for debugging unseen mismatches. Also guard a few existing sources of nondeterminism that don't affect unseen with the DEBUG_DETERMINISM macro.
Also change the simulated run loop to not run as the only task inside the real run loop, since that was a source of nondeterminism.
Also fix nondeterminism from calling timer_int
* Add StorageMetadataType::currentTime
Basically a deterministic-in-simulation version of timer_int that we can
use instead of timer_int for StorageMetadataType::createdTime
I painstakingly went through both transaction_profiling_analyzer.py and
fdbclient/ClientLogEvents.h to make sure that we really can read these
versions.