Commit Graph

642 Commits

Author SHA1 Message Date
Markus Pilman 98039f6ca1 Merge remote-tracking branch 'origin/main' into features/new-test-harness 2022-08-26 13:52:25 -06:00
Marian Dvorsky a666a1ca79
Upgrade awssdk to v1.9.331 (#7982) 2022-08-24 20:37:48 +02:00
Markus Pilman 3545708b91 addressed review comments 2022-08-22 21:06:11 -06:00
Marian Dvorsky d251fef5e9
Use -fno-sanitize=function with UBSAN as a work around (#7956) 2022-08-22 19:18:48 +02:00
Markus Pilman 0971ee5f7a enable new test harness for correctness builds 2022-08-16 11:31:37 -06:00
Mohamed Oulmahdi 7824de5ff4 Fix Windows build broken by #7682 2022-08-15 05:02:46 +02:00
Marian Dvorsky 35a3a33d1c
Resolve TSAN-related issues in ctests (#7864) 2022-08-12 19:23:32 +02:00
Sagar Vemuri 11db333b7b Add tenant mode option to fdbclient tests 2022-08-11 08:11:55 -07:00
Markus Pilman 86ee76ec50
Merge pull request #7816 from sfc-gh-mdvorsky/mdvorsky/coverage
Flush gcov coverage upon SIGTERM
2022-08-08 12:03:22 -06:00
Markus Pilman 828d15907e
Merge pull request #7798 from sfc-gh-mdvorsky/mdvorsky/unittests_in_joshua
Add unit tests to the correctness package
2022-08-08 11:23:22 -06:00
Marian Dvorsky 722f66beb7 Flush gcov coverage upon SIGTERM 2022-08-08 17:11:20 +02:00
Marian Dvorsky d332e13eff Add unit tests to the correctness package 2022-08-05 20:28:53 +02:00
Andrew Noyes 1558edce8c Python_EXECUTABLE to Python3_EXECUTABLE 2022-07-29 14:57:29 -07:00
Andrew Noyes db348598a1 Update Python target name to Python3 2022-07-29 14:57:29 -07:00
Andrew Noyes 52e9990d32 Python_Interpreter_FOUND -> Python3_Interpreter_FOUND 2022-07-29 14:57:29 -07:00
Andrew Noyes efc3045834 Disallow python2 for cmake scripts
The fdb c shim build requires python3. Let's not allow python2 to get
used there.

Otherwise we can see something like this:
```
FAILED: bindings/c/libfdb_c.so.init.c bindings/c/libfdb_c.so.tramp.S
cd /home/anoyes/workspace/foundationdb/build/bindings/c && /usr/bin/python2.7 /home/anoyes/workspace/foundationdb/contrib/Implib.so/implib-gen.py --target aarch64 --outdir /home/anoyes/workspace/foundationdb/build/bindings/c --dlopen-callback=fdb_shim_dlopen_callback /home/anoyes/workspace/foundationdb/build/lib/libfdb_c.so
  File "/home/anoyes/workspace/foundationdb/contrib/Implib.so/implib-gen.py", line 27
    sys.stderr.write(f'{me}: warning: {msg}\n')
```
2022-07-29 14:57:29 -07:00
Junhyun Shim 2a172e1586 Fix WinGDI name collision by defining macro NOGDI
TenantState::ERROR collides with WinGDI's #define ERROR 0
2022-07-25 09:11:34 +02:00
Andrew Noyes 45c8a4e09d
Build fixes/improvements for sanitizers (#7657)
* Don't build fdb c shim with ubsan

This avoids duplicate symbols when linking. It doesn't really make sense
to assemble files with -fsanitize=undefined anyway, since it won't
insert instrumentation.

* Consolidate boost_asan with boost_target
2022-07-21 12:43:38 -07:00
Ata E Husain Bohra 9a3e88df46
Fix ASAN build (#7629)
* Fix ASAN build

Description
  -diff-2: Fix Mac build issues
  -diff-1: Address review comments

Patch addresses the issue where ASAN build failed after introducing
BlobGranule compression.

Testing

ASAN build
2022-07-20 14:14:46 -07:00
Markus Pilman 1de37afd52
Make TEST macros C++ only (#7558)
* proof of concept

* use code-probe instead of test

* code probe working on gcc

* code probe implemented

* renamed TestProbe to CodeProbe

* fixed refactoring typo

* support filtered output

* print probes at end of simulation

* fix missed probes print

* fix deduplication

* Fix refactoring issues

* revert bad refactor

* make sure file paths are relative

* fix more wrong refactor changes
2022-07-19 13:15:51 -07:00
Ata E Husain Bohra 24b2de8de8 BlobFile Encryption and compression support
Description

Testing
2022-07-14 17:04:14 -07:00
Markus Pilman fa9e623fc1
Merge pull request #7459 from sfc-gh-ljoswiak/features/module-link-tests
Add test executables to catch missing symbols in modules
2022-07-11 17:31:11 -06:00
Andrei Gorneanu 3a0444b569 Merge remote-tracking branch 'upstream/main' into add_intel_compiler_support 2022-07-07 17:30:09 +02:00
Lukas Joswiak 618f8455c4 Add test executables to catch missing symbols
Currently, we have code in different folders like `flow/` and `fdbrpc/`
that should remain isolated. For example, `flow/` files should not
include functionality from any other modules. `fdbrpc/` files should
only be able to include functionality from itself and from `flow/`.
However, when creating a shared library, the linker doesn't complain
about undefined symbols -- this only happens when creating an
executable. Thus, for example, it is possible to forward declare an
`fdbclient` function in an `fdbrpc` file and then use it, and nothing
will break (when it should, because this is illegal).

This change adds dummy executables for a few modules (`flow`, `fdbrpc`,
`fdbclient`) that will cause a linker error if there are included
symbols which the linker can't resolve.
2022-07-06 14:49:33 -07:00
Steven Li d4273c4dda revise prerelease pkg format 2022-06-30 18:04:38 -05:00
Mohamed Oulmahdi 6fcbf5784c Formatting 2022-06-30 00:10:47 +02:00
Mohamed Oulmahdi 7af9b2fae3 Enhance TOML dependencies 2022-06-29 23:45:28 +02:00
Markus Pilman 41181cda26 fdbserver compiling (but linking still fails) 2022-06-27 18:54:58 -06:00
Markus Pilman d31fb30f57 fdbclient compiling 2022-06-27 18:31:05 -06:00
Markus Pilman 88af6b403f fdbrpc compiling 2022-06-27 18:11:55 -06:00
Markus Pilman 03d913a1de Flow compiling 2022-06-27 17:05:55 -06:00
goandrei 06004e8b25 Add Intel compiler support 2022-06-26 14:02:07 +00:00
Markus Pilman a47ed89018 Linux fixes and addressed review comments 2022-06-23 20:52:13 -06:00
Markus Pilman 38e100ebc5 flow bindings are compiling 2022-06-23 19:06:05 -06:00
Markus Pilman d35445a868 enforce include modularization in cmake 2022-06-23 14:37:35 -06:00
Andrew Noyes 849b1cd29a
Update to the latest jemalloc release (#7362)
Also remove our patch, since the fix is already present in the new
release.
2022-06-10 14:46:21 -07:00
Markus Pilman d141347500
Merge pull request #7282 from Doxense/fix-windows-tests
Fix windows tests
2022-06-08 08:18:47 -06:00
Josh Slocum 872c25148f remove BUILD_ALWAYS from awssdk.cmake 2022-06-02 13:40:56 -05:00
Mohamed Oulmahdi ae8014a181 Disable iterator debugging for Windows 2022-05-31 11:57:41 +02:00
Junhyun Shim 02b2f97e99
mTLS test helpers (#7218)
* Add TLS option to (local_cluster|tmp_cluster).py

* Add TLS-enabled C API test
2022-05-23 12:47:51 +02:00
Jingyu Zhou b5ce29ee5f
Merge pull request #7143 from sfc-gh-anoyes/anoyes/use-libcoro-valgrind
Use libcoro for valgrind
2022-05-16 13:17:48 -07:00
Markus Pilman 452315ee78
Build mockkms and add mockkms test (#7153) 2022-05-12 15:07:02 -07:00
Andrew Noyes 39e085938c Use libcoro for valgrind 2022-05-12 09:47:51 -07:00
Ata E Husain Bohra 33ae398268
REST KmsConnector implementation (#6994)
* REST KmsConnector implementation

Description
  diff-1: Address review comments.
          Add utility interface to Platform namespace to
          create and operate on tmpfile
 diff-2: Address review comments
         Link Boost::filesystem to CMake build process

Major changes includes:
1. Implement REST based KmsConnector implementation.
2. Salient features of the connector:
 2.1. Two required configuration are:
   a. Discovery KMS URLs - enable KMS discovery on bootstrap
   b. Endpoint path configuration to construct URI to fetch/refresh
      encryption keys
   c. Configuration to provide "validationTokens" to connect with
      external KMS. Patch implements file-based token validation scheme.
 2.2. On startup, RESTKmsConnector discovers KMS Urls and caches
      them in-memory. Extracts "validationTokens" based on input config.
 2.3. Expose endpoints to allow fetch/refresh of encryption keys.
 2.4. Defines JSON format to interact with external KMS - request &
      response payload format.
3. Extend Platform namespace with an interface to create and operate on
   tmp files.
4. Update Platform 'readFileBytes' and 'writeFileBytes' to leverage
   fstream supported implementation.

NOTE: KMS URLs fetched after initial discovery will be persisted using
      DynamicKnobs. It is TODO at the moment and shall be completed
      once DynamicKnobs is feature complete

Testing

Unit test to validation following:
1. Parsing on "validation tokens" logic.
2. Construction and parsing of REST JSON request and response strings.
2022-05-07 13:18:35 -07:00
sfc-gh-tclinkenbeard 8ea68154bf Remove WITH_TLS CMake variable 2022-05-02 22:45:00 -07:00
sfc-gh-tclinkenbeard ea00ae3a25 Remove DISABLE_TLS CMake argument 2022-05-02 22:31:46 -07:00
Sam Gwydir 5403a29ecb
add WolfSSL support (#6682)
remove extraneous include
2022-04-28 16:53:38 -07:00
Andrew Noyes 9f8e2a4517
Test compiling an fdb_c app in pkg_tester (#6940)
* 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
2022-04-26 11:54:52 -07:00
Josh Slocum 3c036300cc Addressing review comments 2022-04-20 14:34:19 -05:00
Josh Slocum 8fa25aa013 Adding blob granule client test target and local cluster setup 2022-04-20 10:15:43 -05:00