1
0
mirror of https://github.com/apple/foundationdb.git synced 2025-06-02 11:15:50 +08:00

27838 Commits

Author SHA1 Message Date
Jingyu Zhou
a14a0d0fda
Fix storage server crashes ()
gcc build randomly crashes because the StorageServer structure exceeded 16KB
size, but is still FastAllocated. Thus, LatencySample can overwrite memory
during initialization, causing random segfaults.

Added a static assertion to catch this problem for future modifications to the
structure.
2024-12-18 19:07:04 -08:00
Syed Paymaan Raza
122cb96b82
Make sharded rocks deterministic in simulation (phase 1) () 2024-12-18 16:05:04 -08:00
Zhe Wang
83f42e13d9
Make BulkDump work with S3 ()
* init

* Add bulkdump to blobstore:// (s3)

* cmake/CompileBoost.cmake
 Add boost url. Needed parsing blobstore:// urls.

* documentation/sphinx/source/bulkdump.rst
 Minor edit to allow addition of blobstore target.

* fdbcli/BulkDumpCommand.actor.cpp
* fdbclient/BulkDumping.cpp
 s/blobstore/s3/ -- more generic and aligns with
 how backup/restore refers to "s3" thingies.

* fdbclient/include/fdbclient/S3Client.actor.h
* fdbclient/S3Client.actor.cpp
 Add batch upload handler.

* fdbclient/tests/seaweedfs_fixture.sh
 Add  run seaweed method. Also look for
 weed and if installed use it else download.

* fdbserver/BulkDumpUtil.actor.cpp
 appendToPath does the right thing when passed an URL
 Add bulkDumpTransportBlobstore_impl.
 Add upload to blobstore.

* tests/loopback_cluster/run_custom_cluster.sh
 Complain if unrecognized arguments.

* Add ctest for bulkload with simple bulkdump test for now.

* Add new test to ctest list

* fix bugs

* nit

* nits

* nits

---------

Co-authored-by: stack <stack@duboce.com>
2024-12-18 13:29:36 -08:00
Syed Paymaan Raza
1b0f92489b
Make ClogRemoteTlog pass when check failures count as Joshua failures () 2024-12-18 11:08:15 -08:00
Dan Lambright
248e6e7a40
Add transaction store mutation tracking capability ()
* Add transaction store mutation tracking

* Adding DEBUG_TRANSACTION_STATE_STORE messages

---------

Co-authored-by: Dan Lambright <hlambright@apple.com>
2024-12-16 14:02:58 -08:00
Yao Xiao
6ccfbf2f42
Pause perpetual storage wiggle when TSS count target is met. ()
* TSS pause

* Add condition
2024-12-16 11:36:37 -08:00
Jingyu Zhou
d7ceecbd47
Fix java lib missing symbols issue ()
Clang19 doesn't like missing symbols
2024-12-13 20:00:26 -08:00
Jingyu Zhou
df0fc7d3b8
Fix issues with clang 19 ()
* Fix issues with clang 19

* Fix format

* Ignore --undefined-version for gcc
2024-12-13 14:20:45 -08:00
Michael Stack
d68d77fea3
error: invalid operands to binary expression in ClogRemoteTLog.actor.cpp on appleclang ()
* On both Apple clang version 15.0.0 (clang-1500.1.0.2.5) and 16.0.0,
compile fails here:

/Users/stack/checkouts/fdb/foundationdb/fdbserver/workloads/ClogRemoteTLog.actor.cpp:254:67: error: invalid operands to binary expression ('Standalone<StringRef>' and 'Optional<Standalone<StringRef>>')
                        if (ssi.locality.dcId().present() && ssi.locality.dcId().get() == g_simulator->remoteDcId)

* Update fdbserver/workloads/ClogRemoteTLog.actor.cpp

Co-authored-by: Syed Paymaan Raza <1238752+spraza@users.noreply.github.com>

* Formatting

---------

Co-authored-by: stack <stack@duboce.com>
Co-authored-by: Syed Paymaan Raza <1238752+spraza@users.noreply.github.com>
2024-12-12 16:11:51 -08:00
Jingyu Zhou
90fcee72f5
Fix a few issues with gcc 13 () 2024-12-12 16:11:38 -08:00
Jingyu Zhou
a946a84b4f Ignore some ctests for ASAN 2024-12-12 09:47:46 +08:00
Rudraditya Thakur
e19df49acd
Rename error variable in go tests to err ()
* Rename error variable in go tests to err 

renamed the variables from e to err as mentioned in the https://go.dev/doc/effective_go

* Update packaging/docker/samples/golang/app/main.go

* fixed accidental renames, renamed file from directoryLayer.go to directory_layer.go, to work on go formatting

* Rename error variable in go tests to err 

renamed the variables from e to err as mentioned in the https://go.dev/doc/effective_go

* fixed accidental renames, renamed file from directoryLayer.go to directory_layer.go, to work on go formatting

* Update packaging/docker/samples/golang/app/main.go

* renamed directoryPartition.go -> directory_partition.go and directorySubspace.go -> directory_subspace.go

* updated: comments in files that were renamed, fixed accidental rename in bindings/go/src/fdb/fdb.go

* Update doc.go

Removed unintentional whitespaces due to formatter

* Update get_encryption_keys.go

removed unintentional whitespaces in get_encryption_keys.go

* removed accidental whitespaces in get_encryption_keys.go

* fixed few minor issues while renaming variable

* updated: minor tweaks, typos

* updated: CMakeLists

* removed: named return value

* handling nil Pointer exception

---------

Co-authored-by: Vishesh Yadav <vishesh3y@gmail.com>
2024-12-11 11:05:27 -08:00
Vishesh Yadav
0032465c53
Add gRPC support to FDB ()
* Implement gRPC support

* Move some CMake stuff around.

* Fix typo

* Add some test

* Add async client

* Add test for checking destroy

* [testing] Automatically discover unit-test and register as ctest

This patch adds `collect_unit_tests()` to CMake which searches over
the codebase and finds all the unit-tests written using Flow's TEST_CASE
macro and register as ctest.

The test then can be then run using ctest command or directly via Test
Explorer in VSCode.

* Fix some tests

* Use NetworkAddress

* Add another variant of call method

* Add a failed call test

* Refactor

* Cleanup shutdown

* Start working on streaming

* Implement server streaming

* Cleanup some unnecessary templating

* Cleanup some tests

* WIP Client Streaming

* WIP

* File Transfer WIP

* Remove UnitTest.h

* Take grpc addresses from command line

* startup grpc in fdbserver

* Cancel if future ref is 0

* noop

* Update some Cmake files

* Fix some build/run issues

* Review comments and remove file transfer

* Compile with gRPC present

* format

* Address review comments

* Add  assert

* fix FLOW_GRPC_ENABLED flag

* include grpc/proto headers for generated files

* fix arm build not finding generated proto

* add debug message for protobuf generation

* add generated dir again

* add check for protoc compiler
2024-12-10 20:56:59 -08:00
Jingyu Zhou
4ef6bca04d
Merge pull request from kakaiu/bulk-dump-framework
BulkDump Framework
2024-12-09 17:10:32 -08:00
Syed Paymaan Raza
c13a8bcd8c
Fix race condition in rocksdb checkpoint readers () 2024-12-09 16:46:15 -08:00
Zhe Wang
02c29e31ff fmt 2024-12-09 15:22:20 -08:00
Zhe Wang
27253a5aca address comments 2024-12-09 15:04:31 -08:00
Sreenath Bodagala
3c43139a77
- In case of spill by reference, log servers should use the logic that ()
is based over "TagData::popped" to decide how long to keep the disk
queue positions of versions in memory (instead of using the logic that
is based over "LogData::persistentDataVersion", which is applicable to
spill by value case).
2024-12-09 16:44:13 -05:00
Jingyu Zhou
b9ae1222ad
Merge pull request from sbodagala/version_vector_durability_error
DBRecoveryDurability errors with version vector
2024-12-09 12:32:10 -08:00
Jingyu Zhou
604b108530
Merge pull request from jzhou77/fix
Fix heap-use-after-free bugs
2024-12-09 11:32:04 -08:00
Jingyu Zhou
20f9dd5ee0 Fix another ASAN bug
restartShardTrackers will invalidate `it->range()` used in the trace events.
2024-12-09 09:18:24 -08:00
Jingyu Zhou
d7f08b2e9f Fix a heap-use-after-free bug
Found by ASAN s3_backup_tests
2024-12-08 17:14:49 -08:00
Jingyu Zhou
72bdd8d824
Refactor. Replace S3Cp with S3Client
Refactor. Replace S3Cp with S3Client (S3Cp is too limiting of a name)
2024-12-06 14:19:03 -08:00
Michael Stack
157163915c
Seaweed process was not getting cleaned up after test. ()
Seaweed is started in a subprocess so setting the global had no
effect. Instead write the pid to a file so its available at
cleanup time.

Found by Zhe Wang.

Co-authored-by: michael stack <stack@duboce.com>
2024-12-06 13:19:29 -08:00
Michael Stack
f391df6ecc
Fix 'ERROR: unknown option: `'' when no options supplied. ()
Bug introduced by recent refactor adding being able to specify
storage as an option.

Found by Paymaan Raza.

Co-authored-by: michael stack <stack@duboce.com>
2024-12-06 13:18:02 -08:00
michael stack
ce7d4af37d Fix usage formatting issue 2024-12-06 11:06:36 -08:00
Sreenath Bodagala
265b4bc7b5 - When version vector is enabled, make proxies advance min committed
version only after receiving a commit version reply from the sequencer.
Advancing the min committed version prior to that point may result in
invalid DBRecoveryDurability errors (if a recovery happens after the
advancement) in simulation tests.
2024-12-06 00:20:33 +00:00
michael stack
cab2f0d3d0 Remove duplicate code. Move BackupTLSConfig.* from fdbbackup to
fdbclient so can be used in fdbclient. Remove the copies of
BackupTLSConfig we had in place named BlobTLSConfig.*.
Keep the old name though it a little clunky.
2024-12-05 08:25:25 -08:00
flowguru
29aa68a3be
Run cycle tests after restore to validate correctness () 2024-12-04 23:03:16 -08:00
Eloi Démolis
4848aeba2b
Rust external workload modifications ()
* Rust external workload modifications

- add readme
- add simulation configuration file
- minor Rust bindings changes
- fix FDBPerfMetric::format_code default value in the C++ bindings
- Add CWorkload.c to CMake
- Fix cpp_workload test file

---------

Signed-off-by: Eloi DEMOLIS <eloi.demolis@clever-cloud.com>
2024-12-04 15:43:20 -08:00
Zhe Wang
f2a1021d60 condense manifest content 2024-12-04 13:26:50 -08:00
michael stack
060a63f29e Formatting 2024-12-04 12:41:17 -08:00
michael stack
83aa06255e Rename test script to s3client from s3cp 2024-12-04 11:30:49 -08:00
Zhe Wang
31cf800ef9 batch dumping at SS 2024-12-04 11:14:51 -08:00
michael stack
b36a715ab8 Format S3Client_cli.actor.cpp 2024-12-04 09:15:31 -08:00
Zhe Wang
1ae1f07fb6 address comments 2024-12-03 22:12:31 -08:00
Zhe Wang
f0c964f8ad address comments 2024-12-03 22:01:07 -08:00
Zhe Wang
ad0f48cba2 add fdbcli support and fix bugs 2024-12-03 22:01:07 -08:00
Zhe Wang
8288d4cbda address comments 2024-12-03 22:01:07 -08:00
Zhe Wang
61f02e5960 fix unseed mismatch 2024-12-03 22:01:07 -08:00
Zhe Wang
ebce2b0199 add bulkdump doc 2024-12-03 22:01:07 -08:00
Zhe Wang
21098f97b2 fix ss bulkdumpQ miss reply error 2024-12-03 22:01:07 -08:00
Zhe Wang
3c7c906001 simplify ss generate dump file 2024-12-03 22:01:07 -08:00
Zhe Wang
2d93ac7f24 one bulkdump job at any time 2024-12-03 22:01:07 -08:00
Zhe Wang
f6be4a4b94 bulkdump generate global manifest 2024-12-03 22:01:07 -08:00
Zhe Wang
eb85034fdb refactor code and make the file path configurable 2024-12-03 22:01:07 -08:00
Zhe Wang
3bb2919dec fmt 2024-12-03 22:01:07 -08:00
Zhe Wang
4b2fe52aed add more comments 2024-12-03 22:01:07 -08:00
Zhe Wang
d7190e3291 code improve 2024-12-03 22:01:07 -08:00
Zhe Wang
046f4b0f7d address comments 2024-12-03 22:01:07 -08:00