Commit Graph

1145 Commits

Author SHA1 Message Date
Junhyun Shim 16f0d53238 Use admin_server as fixture 2022-08-23 15:44:04 +02:00
Junhyun Shim 8397fc3899 Add public key rollover testcase 2022-08-23 14:21:26 +02:00
Junhyun Shim 83a22253a3 Fix multiprocessing and admin server code 2022-08-22 20:55:17 +02:00
Dan Lambright a8dd6b65ec
Support HA in loopback cluster test script (#7953)
* update tag client cache on getKeyLocation

* Support HA for custom cluster test script
2022-08-22 14:33:36 -04:00
Markus Pilman 180024b76d implemented testClass and testPriority 2022-08-22 09:57:44 -06:00
Junhyun Shim b72f6e39df Add admin server for proxying management ops 2022-08-22 14:46:47 +02:00
Zhe Wang 2ceaae4219
dd physical shard core (#7703) 2022-08-19 14:47:00 -04:00
Junhyun Shim e37bc29dc2 Add CrossTenantAccessDisallowed testcase 2022-08-19 18:16:56 +02:00
Junhyun Shim 7ac3a92b78 Tidy up test script and add test timeouts 2022-08-19 15:41:12 +02:00
He Liu aa5c3b7e9d Added ValidateStorage test. 2022-08-18 13:53:42 -07:00
Junhyun Shim 9fc343c442 Use stamp files with authz venv setup
Also fix incorrect bytes-strs usage
2022-08-18 15:43:39 +02:00
Junhyun Shim 62f8f01ed8 Fix token parser only allowing uint64 2022-08-17 20:23:51 +02:00
Junhyun Shim a312002333 Merge remote-tracking branch 'origin/main' into authz-general-tls-and-integration-test 2022-08-17 17:32:00 +02:00
Junhyun Shim bcb9bc7e62 Set up authz integration test environment using Python venv
Add Authz-related support to {tmp|local}_cluster.py
Also fix public key set load/refresh mechanism
2022-08-17 14:57:05 +02:00
Junhyun Shim a8894232d1 Python virtual env for integration-testing token-based authz 2022-08-16 13:21:44 +02:00
Ata E Husain Bohra 03435b5133
Update BlobCipher cache to respect EKP/KMS cipherKey TTL (#7885)
Description

FDB native encryption data at-rest supports two type of cipher-keys
in-memory caching:
1. Revocable keys - with a definite expiry (future timestamp)
2. Non-revocable keys - with or without expiry timestamp and/or
refreshAt timestamp.

Patch update BlobCipherKey in-memory cache to respect EKP/KMS
supplied 'refreshAt' and 'expireAt' timestamp. GetLatestCipher
validates `cipher key freshness' as well as GetCipherKey checks
for 'cipher key liveness' before replying details to the caller.

Patch also optimizes the BlobCipher module logging by taking
following measures:
1. BLOB_CIPHER_DEBUG macro to guard spammy log messages needed
mostly for debugging failures.
2. Minimize log volume by logging cipherKey details for any new
key added to the cache, key-refreshes are not logged.
3. Categorize logs into: debug, info and warn on per-usecase basis

Testing

devRunCorrectness - 100K
EncryptOps.toml - 100K
2022-08-15 11:17:26 -07:00
Steve Atherton d6d2c3a78c Merge commit 'c387e140cde1249d8c7bffdf9b0d19da85a3971d' into redwood-oversize-root 2022-08-15 03:59:41 -07:00
Vaidas Gasiunas c387e140cd
Test more C API in upgrade tests (#7853)
* Test more C API in upgrade tests

* Fix saving results in blob granule API correctness test

* Enable multitenancy in upgrade test with API version >=720

* Disable the upgrade test with blob granule workload
2022-08-15 11:08:53 +02:00
Steve Atherton dfd71df6f7 Re-enable use of Redwood in BlobGranule tests. 2022-08-15 00:19:09 -07:00
Marian Dvorsky 35a3a33d1c
Resolve TSAN-related issues in ctests (#7864) 2022-08-12 19:23:32 +02:00
Josh Slocum 7c155f4521
Granule force purging (#7846)
* Granule purge cannot delete history entry for fully deleting granule until all children are completely done splitting

* Several purging fixes related to granule history

* Fixed typo in refactor

* fixing memory model for purgeRange

* formatting

* weakening granule purge test for now

* cleanup

* First version of force purging granules

* fixing issue in BW range assignment reporting

* Fixing incorrect assert with force purging

* Error handling when checking force purged state

* fixed force purging and recover/reassign range races and check

* Handling force purge + boundary change race

* more places to check for force purged status

* fixed manager restart in the middle of force purge bug

* fixing same-BM purge and assignment races in all cases

* weakening orphaned granule history check a bit because of difficult to solve races

* fixing txn options on retry

* loading force purged ranges at start to avoid resuming a merge that is being force purged

* cleanup

* Enabling purging in granule tests, and adding check for leaked change feeds in force purge

* formatting

* missed parameter in merge conflicts

* Fixing leaked change feed race with merge and force purge

* adding change feed cleanup when new blob manager recovers in-progress merge that raced with force purge

* added forcepurge fdbcli command
2022-08-11 15:22:32 -07:00
Sagar Vemuri 11db333b7b Add tenant mode option to fdbclient tests 2022-08-11 08:11:55 -07:00
Vaidas Gasiunas c39191445b
Fix filter for ASAN warnings in server logs in upgrade tests (#7840) 2022-08-10 13:43:35 +02:00
Chaoguang Lin 15523ff2e6
Extend url support for azure blob backup (#7776)
* Change to old url format azure://<endpoint>/<account>/<container>/

* Remove unnecessary dependency

* Add cmake_minimum_required  for azure backup cmake file

* Add the comments for new supported urls

* Add the host name resolution logic

* format files

* refactor part of the code

* Add documentation about Azure backup testing

* Add more comments, update the doc
2022-08-09 01:37:24 -07:00
A.J. Beamon e84fecf392
Merge pull request #7796 from sfc-gh-ajbeamon/decommission-cleanup-global-state
Fix: Decommissioning a metacluster could fail if some global state fields were set
2022-08-08 18:12:50 -07:00
He Liu a2dc4e20e9
Store rocksdb::DBOptions and rocksdb::ColumnFamilyOptions to (#7766)
* Store rocksdb::DBOptions and rocksdb::ColumnFamilyOptions to
SharedRocksDBState.

* Make KeyValueStoreRocksDBTest.toml `UNIT`.

* Added TEST_STORAGE_ENGINE_TYPE

* Added readOptions.
2022-08-08 13:38:02 -07:00
A.J. Beamon 1569f033c8 Reduce the number of extra databases to prevent using too many files 2022-08-08 12:47:35 -07: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
Vaidas Gasiunas 79571dd2b4
Testing upgrades to a future version of FDB (#7780)
* Enable configuring the next future protocol version as the current protocol version in FDB client, fdbserver, and fdbcli

* Auto format python files used in upgrade tests

* Add a test for upgrading to a future FDB version

* Emphasize that the options for using future protocol version are intended for test purposes only

* Make the global variable for current protocol version visible only locally

* Refactirng to avoid using currentProtocolVersion() in static intialization

* Update go bindings
2022-08-08 17:29:49 +02:00
Josh Slocum f866ffc36b
Better granule conversion (#7787)
* better check for granule-ification

* Handling blob granule initial split too large

* Re-evaluating split size if too large, even if read doesn't get transaction_too_old

* reworked to have blob worker propose split key

* New GranuleStatusReply to avoid seqno issue stream side effects

* Handling retries on reevaluateInitialSplit properly

* Waiting for stream to be initialized

* Checking reevaluate split for additional split points beyond proposed

* Fixing more races in reevaluate initial split

* properly handling cleaning up old change feed after split re-evaluate

* fixing granule conversion bug with hard boundaries

* fixing clear and merge check race with cycle test

* refactor missed knob check for clearAndMerge

* Fixing formatting

* review comments and improving large range conversion

* fixing typo

* more formatting
2022-08-05 18:12:17 -05:00
Marian Dvorsky e88947cdf6 Remove non-existing unittest 2022-08-05 21:57:22 +02:00
Josh Slocum b2835921ba
Using knownBlobRanges for blob granule ranges whether tenants are enabled or not (#7788)
* Using knownBlobRanges for blob granule ranges whether tenants are enabled or not

* Effectively disabled blob granule tests when tenants enabled to fix ctest
2022-08-05 11:46:09 -05:00
A.J. Beamon ff23d5994e
Merge pull request #7729 from sfc-gh-ajbeamon/feature-metacluster
Metacluster
2022-08-04 15:29:44 -07:00
A.J. Beamon fbe1a4a69a Use multiple databases in the metacluster managemen test. Fix a test bug as well as some issues with setting up multiple extra databases. 2022-08-03 19:10:34 -07:00
Dennis Zhou b34a54fa7f
blob: allow for alignment of granules to tuple boundaries (#7746)
* blob: read TenantMap during recovery

Future functionality in the blob subsystem will rely on the tenant data
being loaded. This fixes this issue by loading the tenant data before
completing recovery such that continued actions on existing blob
granules will have access to the tenant data.

Example scenario with failover, splits are restarted before loading the
tenant data:
BM - BlobManager
epoch 3:                        epoch 4:
  BM record intent to split.
  Epoch fails.
                                BM recovery begins.
  BM fails to persist split.
                                BM recovery finishes.
                                BM.checkBlobWorkerList()
                                  maybeSplitRange().
                                BM.monitorClientRanges().
                                  loads tenant data.

bin/fdbserver -r simulation -f tests/slow/BlobGranuleCorrectness.toml \
    -s 223570924 -b on  --crash --trace_format json

* blob: add tuple key truncation for blob granule alignment

FDB has a backup system available using the blob manager and blob
granule subsystem. If we want to audit the data in the blobs, it's a lot
easier if we can align them to something meaningful.

When a blob granule is being split, we ask the storage metrics system
for split points as it holds approximate data distribution metrics.
These keys are then processed to determine if they are a tuple and
should be truncated according to the new knob,
BG_KEY_TUPLE_TRUNCATE_OFFSET.

Here we keep all aligned keys together in the same granule even if it is
larger than the allowed granule size. The following commit will address
this by adding merge boundaries.

* blob: minor clean ups in merging code

1. Rename mergeNow -> seen. This is more inline with clocksweep naming
   and removes the confusion between mergeNow and canMergeNow.
2. Make clearMergeCandidate() reset to MergeCandidateCannotMerge to make
   a clear distinction what we're accomplishing.
3. Rename canMergeNow() -> mergeEligble().

* blob: add explicit (hard) boundaries

Blob ranges can be specified either through explicit ranges or at the
tenant level. Right now this is managed implicitly. This commit aims to
make it a little more explicit.

Blobification begins in monitorClientRanges() which parses either the
explicit blob ranges or the tenant map. As we do this and add new
ranges, let's explicitly track what is a hard boundary and what isn't.

When blob merging occurs, we respect this boundary. When a hard boundary
is encountered, we submit the found eligible ranges and start looking
for a new range beginning with this hard boundary.

* blob: create BlobGranuleSplitPoints struct

This is a setup for the following commit. Our goal here is to provide a
structure for split points to be passed around. The need is for us to be
able to carry uncommitted state until it is committed and we can apply
these mutations to the in-memory data structures.

* blob: implement soft boundaries

An earlier commit establishes the need to create data boundaries within
a tenant. The reality is we may encounter a set of keys that degnerate
to the same key prefix. We'll need to be able to split those across
granules, but we want to ensure we merge the split granules together
before merging with other granules.

This adds to the BlobGranuleSplitPoints state of new
BlobGranuleMergeBoundary items. BlobGranuleMergeBoundary contains state
saying if it is a left or right boundary. This information is used to,
like hard boundaries, force merging of like granules first.

We read the BlobGranuleMergeBoundary map into memory at recovery.
2022-08-02 16:06:25 -05:00
Josh Slocum b1ff8b8340
Merge pull request #7753 from sfc-gh-jslocum/cf_op_chaos
Add Chaos to Change Feed Operations test
2022-08-02 09:04:38 -05:00
A.J. Beamon 1b693a588a Merge branch 'main' into feature-metacluster 2022-08-01 14:43:14 -07:00
Josh Slocum 83806b4a31 disable movekeys granule test and shift other granule tests around 2022-08-01 14:48:38 -05:00
A.J. Beamon 9ded40b6e1 The metacluster management test should disallow creating any tenants in general workload setup. 2022-07-30 13:09:30 -07:00
Andrew Noyes 1558edce8c Python_EXECUTABLE to Python3_EXECUTABLE 2022-07-29 14:57:29 -07:00
A.J. Beamon 8b7b6d1d4c Various cleanup; change some test parameters; add a test for metacluster management operations 2022-07-29 09:24:06 -07:00
A.J. Beamon e8e4f3ad3a Merge branch 'main' into feature-metacluster
# Conflicts:
#	fdbclient/include/fdbclient/Tenant.h
2022-07-28 16:53:29 -07:00
Junhyun Shim c6342a6e5b
Merge branch 'main' into features/authz 2022-07-27 20:51:32 +02:00
A.J. Beamon 7c6b3fb0b8 Merge branch 'main' into feature-metacluster 2022-07-27 08:55:10 -07:00
A.J. Beamon dec6dbfbfb
Merge pull request #7549 from sfc-gh-ajbeamon/feature-tenant-groups
Add support for tenant groups
2022-07-27 07:56:27 -07:00
Josh Slocum 2190ceb003 Adding chaos to ChangeFeedOperations 2022-07-27 08:34:11 -05:00
Josh Slocum cf0fadab85
Merge pull request #7655 from sfc-gh-jslocum/improved_cf_testing
Improved change feed testing
2022-07-27 08:04:37 -05:00
He Liu edbc373815
Get ShardedRocks ready for simulation test. (#7679)
* Disabled tests for ShardedRocks.

Cleaned up ShardedRocks TraceEvent.

Added assertion in ShardManager::validate().

* Added test trace.

* Make sure TraceEvent contains `ShardedRocks`.

Co-authored-by: He Liu <heliu@apple.com>
2022-07-26 21:49:33 -07:00
Josh Slocum 1ea43aa878 Merge branch 'main' into improved_cf_testing 2022-07-26 18:12:58 -05:00
Josh Slocum 77956dc7ae
Merge pull request #7639 from sfc-gh-jslocum/cf_metadata_rewrite
Change Feed Metadata Rewrite and adding targeted fault injection
2022-07-26 18:10:37 -05:00
Junhyun Shim e2a3fedfc7
Merge branch 'main' into features/authz 2022-07-27 00:08:57 +02:00
Josh Slocum 35056060b0 fixing specific unit test 2022-07-26 17:05:46 -05:00
Josh Slocum 0609aa57d1 Merge branch 'main' into improved_cf_testing 2022-07-26 16:44:13 -05:00
Josh Slocum c32e1da908
Merge pull request #7673 from sfc-gh-jslocum/delta_files_v2
Sorted Delta Files
2022-07-26 16:04:55 -05:00
A.J. Beamon a64693518a Add support for tenant groups 2022-07-26 09:04:29 -07:00
Yao Xiao 98bff116a4
Disabled unsupported tests. (#7693) 2022-07-25 21:57:47 -07:00
A.J. Beamon 41c1bef3bf Merge branch 'feature-tenant-groups' into feature-metacluster 2022-07-22 14:26:02 -07:00
A.J. Beamon f6e3019a10 Merge branch 'main' into feature-tenant-groups 2022-07-22 14:09:55 -07:00
Josh Slocum 095a5a4868 First version of key-sorted delta files 2022-07-22 11:43:49 -05:00
He Liu 7a8be255cd
Ss shard management (#7340)
* Storage server shard management with physical shards.

* Cleanup.

* Resolved comments.

* Added `UnlimintedCommitBytes`.

Co-authored-by: He Liu <heliu@apple.com>
2022-07-22 09:30:44 -07:00
A.J. Beamon 237081905d Add support for tenant groups 2022-07-22 09:27:31 -07:00
A.J. Beamon 3e1763e7ac Merge branch 'main' into feature-metacluster 2022-07-21 14:48:53 -07:00
Josh Slocum 3f8f44dd16 Merge branch 'main' into improved_cf_testing 2022-07-20 08:19:52 -05:00
Josh Slocum fd9201f60b Merge branch 'main' into cf_metadata_rewrite 2022-07-20 07:55:00 -05:00
Dan Lambright 7e296c2367
simple replication (#7625) 2022-07-19 18:30:34 -04:00
A.J. Beamon 3ceb2a0639 Merge branch 'main' into feature-metacluster 2022-07-19 13:04:54 -07:00
A.J. Beamon c7c7bd5f17 Undo change to mark tenant modes non-experimental. Other minor cleanup. 2022-07-19 09:18:53 -07:00
Josh Slocum 78d4d85f3b Adding non-tss delay injection to SS as well 2022-07-19 09:59:14 -05:00
Josh Slocum 0d9bb9f4a5 Added targeted storage server restarts at critical metadata points 2022-07-19 08:33:43 -05:00
Trevor Clinkenbeard 1eec6f993d
Merge pull request #7572 from sfc-gh-akejriwal/tenantquota
Introduce storage quotas per tenant
2022-07-18 20:00:22 -07:00
A.J. Beamon 860d3843cc Merge remote-tracking branch 'origin/feature-tenant-groups' into feature-metacluster 2022-07-16 19:33:26 -07:00
A.J. Beamon c08592368f Add support for tenant groups 2022-07-15 21:18:41 -07:00
Ata E Husain Bohra f6f117592d BlobFile Encryption and compression support
- Limit verbose logging under DEBUG_MACRO
 - Update/Add code documentation

Description

Testing
2022-07-14 17:04:14 -07:00
Ata E Husain Bohra 24b2de8de8 BlobFile Encryption and compression support
Description

Testing
2022-07-14 17:04:14 -07:00
Ankita Kejriwal bb05321d24 Introduce storage quotas per tenant.
This change adds:
* ability to store the mapping from tenants to quota in the system keyspace,
* a setter and getter function
* a new workload to test this functionality

FDBCORE-2437
2022-07-14 16:35:12 -07:00
Yi Wu 7d7ce0909f
Restart tests carry forward encryption knobs value (#7497)
Previously to get around the issue that EKP is not present when restart test switching encryption from on to off and read encrypted data, EKP was made to start in simulation regardless of encryption knob. This PR revert that change, and instead force restart test not to change encryption knob, by passing previous encryption knob through restartInfo.ini file. Also since we don't allow downgrading an encrypted cluster to previous version, disable encryption in downgrade tests.

Also adding an assert to allow reading encrypted mutations only if encryption knob is on. We may reconsider allowing switching encryption on/off for existing cluster, but for now we don't allow it.
2022-07-14 14:45:17 -07:00
A.J. Beamon cb499fa5db Merge branch 'main' into feature-metacluster 2022-07-13 15:28:34 -07:00
Josh Slocum 142ed7713e Initial version of ChangeFeedOperations workload 2022-07-13 11:16:53 -05:00
Markus Pilman 2edbcf2c65
Merge pull request #44 from apple/main
Merge main
2022-07-12 07:51:22 -06:00
Josh Slocum 9831be866f Adding RandomMoveKeys blob granule cycle test and moving lower value fast/ tests to rare/ 2022-07-11 15:49:55 -05:00
Dan Lambright 96bd3dcbf0
custom loopback cluster script (#7550) 2022-07-11 13:02:37 -04:00
Vaidas Gasiunas 1e8feb9cb8
Generate a shim library for the FDB C API (#7506)
* Adding sources of the Implib.so project

* Run C unit tests and API tests with the shim library

* Reuse compilation of C test binaries with and without shim library

* Resolve client library path from an environment variable

* Refactoring: Reusable module for downloading FDB binaries

* Testing client shim library with current version and last release version

* Tests for specifying client library over an environment variable

* Enable C shim library tests on ARM

* Restore the original path for including fdb_api.hpp
2022-07-08 16:28:35 +02:00
He Liu bc5bfaffda
Shard based move (#6981)
* Shard based move.

* Clean up.

* Clear results on retry in getInitialDataDistribution.

* Remove assertion on SHARD_ENCODE_LOCATION_METADATA for compatibility.

* Resolved comments.

Co-authored-by: He Liu <heliu@apple.com>
2022-07-07 20:49:16 -07:00
A.J. Beamon aea4d802c6 Merge branch 'main' into feature-metacluster 2022-06-30 15:08:09 -07:00
sfc-gh-tclinkenbeard 72f5335460 Remove TPCC workloads 2022-06-29 22:31:56 -07:00
A.J. Beamon e1a93988ef Merge branch 'main' into feature-metacluster 2022-06-28 14:58:07 -07:00
Markus Pilman 9d16260822 Merge remote-tracking branch 'origin/main' into features/authz 2022-06-28 13:13:51 -06:00
sfc-gh-tclinkenbeard 086e4bff06 Merge remote-tracking branch 'origin/main' into global-tag-throttling3 2022-06-28 10:18:13 -07:00
He Liu 61d621a4c4
Fix read iterator pool race (#7455) 2022-06-27 14:51:26 -07:00
Markus Pilman 624430b6ae addess review comments 2022-06-27 14:22:23 -06:00
Markus Pilman 3aaae9c521 Merge remote-tracking branch 'origin/main' into features/authz 2022-06-27 11:07:14 -06:00
Vaidas Gasiunas e28a8401fb
Update coordinator list from cluster file (#7382)
* Log failed connection attempts in monitorProxies

* Update coordinator list from the cluster file after failing to connect to all coordinators

* Wiggle and upgrade test with legacy version monitoring; updating tests to use 7.1.9

* Update coordinator list from the cluster file: addressing review comments

* Update coordinator list from the cluster file: addressing review comments

* Wait on future for all setAndPersistConnectionString calls
2022-06-23 09:22:09 +02:00
A.J. Beamon 9f3819752f Change the command to create a metacluster from using 'configure tenant_mode=management' to 'metacluster create <NAME>'. Distribute this name to all processes in a metacluster. Eliminate the tenant mode entirely from metacluster clusters, instead relying on a metacluster registration key. 2022-06-22 12:15:43 -07:00
sfc-gh-tclinkenbeard 2391e58fb2 Merge remote-tracking branch 'origin/main' into global-tag-throttling3 2022-06-21 10:09:15 -07:00
sfc-gh-tclinkenbeard a025d7bdbc Ignore GlobalTagThrottling.toml test 2022-06-19 23:10:54 -07:00
Andrew Noyes 83aceb216c
Use absl::GetStackTrace for slow task profiler (#7374)
* Make SlowTask workload runnable in joshua

* Remove SignalSafeUnwind, and use absl::GetStackTrace for slow task profiler
2022-06-15 14:53:52 -07:00
Yao Xiao ddbecb69ad
Ignore ShardedRocksDBTest. (#7381) 2022-06-13 23:13:11 -07:00
Markus Pilman 799fe32346 Merge remote-tracking branch 'origin/main' into features/authz 2022-06-13 18:02:11 -06:00
sfc-gh-tclinkenbeard df71a49bf6 Merge remote-tracking branch 'origin/main' into global-tag-throttling3 2022-06-13 10:03:10 -07:00
sfc-gh-tclinkenbeard 75c858eb2c Differentiate between different quotas in GlobalTagThrottling workload 2022-06-13 10:01:55 -07:00
A.J. Beamon 986dd67278 Add some basic support for running multiple extra clusters in simulation. Use this to simulate a metacluster in some tests. 2022-06-10 10:08:18 -07:00
A.J. Beamon 739fc9ce6b Merge branch 'main' into feature-metacluster 2022-06-09 12:39:34 -07:00
Andrew Noyes e0eedc6a37
Fix asan message detection (#7338)
* Fix asan message detection

* Fix heap-buffer-overflow

Call to strlen on a not necessarily null terminated string

* Fix gcc build
2022-06-08 09:35:30 -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
A.J. Beamon eabd43c0fd Add a workload that creates and deletes tenants simultaneously. 2022-06-07 13:48:12 -07:00
A.J. Beamon ce1bd5f974 Merge branch 'multiple-tenant-creation' into feature-metacluster
# Conflicts:
#	fdbclient/GenericManagementAPI.actor.h
#	fdbclient/SpecialKeySpace.actor.cpp
#	fdbserver/tester.actor.cpp
#	fdbserver/workloads/FuzzApiCorrectness.actor.cpp
#	fdbserver/workloads/TenantManagement.actor.cpp
2022-06-06 15:04:10 -07:00
Dan Adkins bd47f390bd
Add simulation test for three_data_hall configuration (#7305)
* Add simulation test for 1 data hall + 1 machine failure case.

* Disable BUGGIFY for DEGRADED_RESET_INTERVAL.

A simulation test discovered a situation where machines attempting to connect
to a dead coordinator (with a well-known endpoint) were getting themselves
marked degraded. This flapping of the degraded state prevented recovery from
completing, as it started over any time it noticed that tlogs on degraded
hosts could be relocated to non-degraded ones.

bin/fdbserver -r simulation -f tests/rare/CycleWithDeadHall.toml -b on -s 276841956
2022-06-06 13:14:49 -07:00
sfc-gh-tclinkenbeard 2ae5a6c86b Add GlobalTagThrottling test 2022-06-03 13:12:48 -07:00
A.J. Beamon 2907aafa60 Merge branch 'main' into feature-metacluster 2022-06-02 12:18:42 -07:00
Mohamed Oulmahdi 3139e28aeb Fix TestRunner.py typos 2022-05-31 13:29:25 +02:00
Josh Slocum ffa4255c65 Added blob metadata concept as new secret type, and verified blob workers can load it 2022-05-27 15:15:56 -05:00
Josh Slocum 85af0a25b2 Enabling BM to understand tenant boundaries, and changing BlobGranuleCorrectness to use tenants 2022-05-25 17:16:56 -05:00
Josh Slocum 49b50ae8b0 Disabling default tenant in blob granule tests 2022-05-25 17:16:56 -05:00
Yao Xiao 6bf1e3921f
Add skeleton for sharded rocksdb KVS. (#7181) 2022-05-23 15:29:23 -07:00
sfc-gh-tclinkenbeard 8194460915 Update is_unknown_knob in test_argument_parsing.py 2022-05-23 13:41:48 -07: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
A.J. Beamon 69261f9f10 Merge branch 'main' into feature-metacluster
# Conflicts:
#	fdbclient/MultiVersionTransaction.actor.cpp
#	fdbclient/MultiVersionTransaction.h
#	fdbserver/tester.actor.cpp
2022-05-19 09:11:30 -07:00
Vaidas Gasiunas 5205b565ab
Upgrade Tests: Testing downgrade from 7.2 to 7.1 (#7179) 2022-05-18 11:59:29 +02:00
Vaidas Gasiunas 9966e3f7f7 Api Tester: print workload progress statistics in regular time intervals 2022-05-17 17:35:01 +02:00
Xiaoxi Wang 8e2a78bf3c
Merge pull request #7087 from sfc-gh-xwang/features/read-skew
Add SkewedReadWriteWorkload
2022-05-16 16:13:57 -07:00
Xiaoxi Wang ef0d49eb93
Update tests/CMakeLists.txt 2022-05-16 11:13:18 -07:00
Xiaoxi Wang 8014ac6baf CMakeList.txt 2022-05-13 12:35:24 -07:00
Xiaoxi Wang e59bdbf3a3 merge upstream/main 2022-05-13 12:22:09 -07:00
Vaidas Gasiunas 6bb83adbdc Upgrade Tests: Restore progress checks after every step 2022-05-13 11:08:23 +02:00
Vaidas Gasiunas c84e0b0d7a
Merge pull request #7085 from sfc-gh-vgasiunas/vgasiunas-cluster-wiggle-test
Cluster wiggle test
2022-05-11 13:06:33 +02:00
Jingyu Zhou fcd3917d1a
Merge pull request #7115 from sbodagala/main
Cherry-pick version vector disable/enable restart tests
2022-05-10 13:03:16 -07:00
Markus Pilman e1ab0f5c4d
Merge pull request #7086 from sfc-gh-vgasiunas/vgasiunas-upgrade-tests-71
Upgrade Tests: Including 7.1 into the upgrade paths
2022-05-10 09:09:55 -07:00
Jingyu Zhou dc8cd5bce1 Enable proxy_use_resolver_private_mutations for VV restarting tests 2022-05-10 15:09:46 +00:00
Jingyu Zhou 92345b9f82 Add VV upgrade tests
No VV to VV upgrade tests.
2022-05-10 15:09:02 +00:00
Jingyu Zhou fba044b846 Use 3 cycles in VV disable tests 2022-05-10 15:08:04 +00:00
Jingyu Zhou 8a8b4d0f0c Add test for turning off version vector feature 2022-05-10 15:04:33 +00:00
Xiaoxi Wang 389e289fe4 merge upstream/main 2022-05-09 12:10:53 -07:00
Vaidas Gasiunas 3bf5357562
Merge pull request #7084 from sfc-gh-vgasiunas/vgasiunas-upgrade-test-fix
Upgrade Tests: Avoid race conditions when copying library files from a local repo
2022-05-09 13:27:37 +02: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
Xiaoxi Wang 3dda65bba9 merge upstream/main 2022-05-06 09:55:32 -07:00
Xiaoxi Wang a94be36e03 add test spec file 2022-05-06 09:42:37 -07:00
Vaidas Gasiunas 27c0113305 Upgrade Tests: Including 7.1 into the upgrade paths 2022-05-06 15:21:57 +02:00
Vaidas Gasiunas fab8f35683 Cluster wiggle test 2022-05-06 15:00:40 +02:00
Vaidas Gasiunas 77b930be15 Upgrade Tests: Avoid race conditions when copying library files from a local repo 2022-05-06 11:32:28 +02:00
A.J. Beamon 7e860dc92c Some initial metacluster implementation 2022-05-03 12:53:35 -07:00
Markus Pilman d9aee5c253
Merge pull request #7012 from sfc-gh-vgasiunas/vgasiunas-upgrade-tests
Improve robustness of upgrade tests
2022-05-02 10:30:21 -06:00
Steve Atherton 2bcbff2809
Merge pull request #6965 from sfc-gh-tclinkenbeard/increase-snapshot-lower-bound
Increase lower bound for snapshot restart tests to 7.1.0
2022-04-29 13:59:37 -07:00
Vaidas Gasiunas 1ef33db1ef Upgrade Tests: Create the destination directory before copying a client library from the local repository 2022-04-29 16:41:03 +02:00
Vaidas Gasiunas 449d5aec61 Upgrade Tests: Fix paths for accessing binaries from the local repo 2022-04-29 15:54:47 +02:00
Vaidas Gasiunas e33d7455a5 Upgrade Tests: Retry on download errors 2022-04-29 15:32:47 +02:00
Vaidas Gasiunas 27c3d7a953 Upgrade Tests: Use old binaries from the Docker image if available 2022-04-29 14:53:22 +02:00
Vaidas Gasiunas 27d7b2e409 Upgrade Test: Avoid blocking on opening names pipes in case the tester fails to initialize 2022-04-29 14:04:27 +02:00
Vaidas Gasiunas e52662c774
Upgrade Tests: Fix resetting of already initialized variables 2022-04-29 12:47:05 +02:00
LukasMol f4fb45abac tests/ black code reformat 2022-04-27 17:01:20 +02:00
sfc-gh-tclinkenbeard e2931b27ca Increase lower bound for snapshot restart tests to 7.1.0 2022-04-26 11:48:46 -07:00