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

2096 Commits

Author SHA1 Message Date
Xiaoge Su
bfb0a33c01 Remove go get since it is not being supported anymore 2024-04-24 14:48:56 -07:00
Xiaoge Su
33fb8ff978 test: Split the go get/install command 2024-04-22 21:21:32 -07:00
Xiaoge Su
294e10c387 Add go.mod to the package 2024-04-22 18:44:33 -07:00
Xiaoge Su
c852e53875 fixup! Install build package
See: https://packaging.python.org/en/latest/tutorials/packaging-projects/
2024-04-22 18:44:33 -07:00
Xiaoge Su
f677af3432 fixup! Fix the generated.go issue
The CTest item

 * update_bindings_go_src_fdb_generated_go

will compare the generated go api with hardcoded go api to test the
generation. New FDB option will cause hardcoded go code outdated.
2024-04-22 18:44:32 -07:00
Xiaoge Su
010d070de0 Modernize the Python3 package build configuration 2024-04-22 18:44:32 -07:00
Xiaoge Su
b2e50721e4 fixup! Fix the regexp warning in generate_asm.py 2024-04-22 18:44:32 -07:00
Tom Parker-Shemilt
6452b701c5 Fix various Javadoc comments that break the doc build 2024-02-19 19:10:00 -06:00
Tom Parker-Shemilt
2f623f985d Add javadoc build 2024-02-19 19:10:00 -06:00
Boris Korzun
f7a443aea4 Add libfmt 10+ support () 2024-02-13 23:09:58 +03:00
Dimitris Apostolou
a88114c222
Fix typos 2024-02-07 01:16:00 +02:00
gm42
6b54636fb4 Go: simplify network start check logic
This change attempts to address the SIGSEGV happening when network routine is started
multiple times concurrently.
It changes the network mutex to be a RW mutex, to optimize the case
of calls when network is already started.

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x7f4600000011 pc=0x7f46a405678e]

runtime stack:
runtime.throw({0x1169773?, 0x7f46a479f96c?})
	/usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0x7f465affb790 sp=0x7f465affb760 pc=0x44e45d
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:821 +0x3e9 fp=0x7f465affb7f0 sp=0x7f465affb790 pc=0x466e49

goroutine 60 [syscall]:
runtime.cgocall(0xf4f640, 0xc0001f7f80)
	/usr/local/go/src/runtime/cgocall.go:157 +0x6e fp=0xc0001f7f58 sp=0xc0001f7f20 pc=0x41840e
github.com/apple/foundationdb/bindings/go/src/fdb._Cfunc_fdb_run_network()
	_cgo_gotypes.go:378 +0x85 fp=0xc0001f7f80 sp=0xc0001f7f58 pc=0xd19d25
github.com/apple/foundationdb/bindings/go/src/fdb.startNetwork.func1()
	/home/user/go/pkg/mod/github.com/apple/foundationdb/bindings/go@v0.0.0-20221026173525-97cc643cef69/src/fdb/fdb.go:209 +0x2a fp=0xc0001f7fe0 sp=0xc0001f7f80 pc=0xd2704a
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 fp=0xc0001f7fe8 sp=0xc0001f7fe0 pc=0x487741
created by github.com/apple/foundationdb/bindings/go/src/fdb.startNetwork
	/home/user/go/pkg/mod/github.com/apple/foundationdb/bindings/go@v0.0.0-20221026173525-97cc643cef69/src/fdb/fdb.go:208 +0x72

goroutine 1 [running]:
	goroutine running on other thread; stack unavailable
2023-12-14 12:49:48 +01:00
Dan Lambright
015167c17e
Throttle commits against hot shards ()
* throttle hot shards

* expire throttled shards over time

* add backoff

* Parallelize messaging from RK to CP

* Obtain shards from a single SS

* handle expired transactions

* bump transaction_throttled_hot_shard

* Change SevError to SevWarn for CannotMonitorHotShardForSS

* Add log per request
2023-10-31 12:01:34 -04:00
Boris Korzun
ac30cb0783 Add preinstalled doctest support 2023-10-06 13:33:30 +03:00
Boris Korzun
e04f0467a0 Disable explicit std::filesystem linking on CLang 2023-10-05 17:23:26 +03:00
Johannes M. Scheuermann
79ce8e8d22 Add the linker option back again 2023-09-29 15:20:57 +02:00
Johannes M. Scheuermann
d974508599 Update CGO LDflags for new MacOS linker 2023-09-29 15:20:52 +02:00
Jingyu Zhou
872db26598
Merge pull request from DataDog/griffin/fix-db-panic-go
Fix panic when connecting to database from multiple threads in Go bindings
2023-09-26 12:56:33 -07:00
Andrew Noyes
f52cffd81b Fix MacOS go build
See
https://forums.foundationdb.org/t/macos-build-finds-wrong-fdb-c-h-for-go-bindings-patch-included/3929
for details
2023-08-28 10:22:06 -07:00
Johannes M. Scheuermann
c9a04d799d Fix the go tuple tests for new go version 2023-08-07 11:02:02 +02:00
Vishesh Yadav
e6cd1a10e0
Merge pull request from oleg68/main-locality-doc
Added more javadoc information for com.apple.foundationdb.LocalityUtil.getAddressesForKey
2023-07-21 13:09:47 -07:00
Jingyu Zhou
4b00018a33
Fix Implib.so imports when 'amd64' architecture is using ()
Co-authored-by: Alexey Marchenko <santana705736@gmail.com>
2023-07-17 12:04:56 +02:00
Oleg Samarin
1cb0a860da Added more javadoc information for com.apple.foundationdb.LocalityUtil.getAddressesForKey
(cherry picked from commit af51830eafef881f6bfd880b17982ea62f7823c2)
2023-07-10 11:04:27 +03:00
Zhe Wu
5c8a163c72
Update main branch to 7.4 ()
* Update main branch to 7.4

* Update API version to 740

* Makes fdb_c_client_config_tests.py passing after API version update

* Remove from_7.3.0_until_7.4.0 and add from_7.3.0

* Update tests in fdb_c_client_config_tests.py
2023-06-15 10:19:39 +02:00
hao fu
07c02e5e6b Add comments for VERSIONSTAMP_96_CODE 2023-06-13 09:50:29 -07:00
Griffin Dunn
819fc1ef59 fix clear cache 2023-06-08 11:42:49 -04:00
Griffin Dunn
205f7861af fix panic when connecting to multiple fdb dbs at once 2023-06-08 11:32:03 -04:00
Aaron Molitor
a718a31dd7 update links to foundationdb.org to reference GitHub 2023-05-30 10:15:20 -05:00
Vaidas Gasiunas
9bc55f67c3
Fix releasing watches on future cancellation ()
* Test watch cleanup on cancel

* Fix clearing the database in Java integration tests

* Always cancel the futures wrapped by MVC abortable futures

* More tests for watch cleanup

* Fix clear database database in some Java integration tests
2023-05-22 22:01:27 +02:00
Andrew Noyes
4d2f038b60 Remove unnecessary duplicate declaration of fdb_tenant_list_blobbified_ranges 2023-05-18 16:20:18 -07:00
Sam Gwydir
6c16875c34
Add networkoption to disable non-TLS connections ()
* Add networkoption to disable non-TLS connections

* add disable plaintext connection to fdbserver

* python doc

* Formatting

* Add tls disable plaintext connection to client api test

* review

* fix negative test

* formatting

* add TLS support to c client config tests

Adds support for TLS in the client and server separately

* add tests for disable_plaintext_connections

Test TLS and Plaintext Clusters and Clients

* Fix documentation

* Rename option to indicate it is client-only

* clearer formatting

* default to allowing plaintext connections

* add SetTLSDisablePlaintextConnection to go bindings
2023-05-13 00:14:11 +02:00
Vaidas Gasiunas
d16d53739e Some more tests for future cancelations in Java bindings 2023-05-12 20:43:18 +02:00
Vaidas Gasiunas
574a4cec71 Remove debugging output in future cancellation tests 2023-05-12 16:20:54 +02:00
Vaidas Gasiunas
6594c4d302 Java binding: Fix reentrant locking in future cancelation 2023-05-12 15:58:38 +02:00
Vaidas Gasiunas
607a1040ed Testing future cancelation in Java bindings with an external client 2023-05-12 15:57:45 +02:00
Zhe Wu
e3490a1af8 Update API version to 730 2023-05-10 11:26:46 -07:00
Zhe Wu
a6d6c70aad
Merge pull request from halfprice/zhewu/update-main-to-7.4
Bring main branch to 7.3
2023-05-10 09:53:27 -07:00
Zhe Wu
761cdbc019 Bring main to 7.3 2023-05-09 21:14:16 -07:00
A.J. Beamon
686c391281
Merge pull request from sfc-gh-ajbeamon/apply-flake8
Fix several issues found by flake8
2023-05-09 09:05:14 -07:00
Hao Fu
3158f8b033
Fix hashCode() and equals() for MappedKeyValue () 2023-05-08 16:54:11 -07:00
Josh Slocum
b5a9997217
adding DBPerTXN blob granule tests ()
* adding DBPerTXN blob granule tests

* fixing comment
2023-05-08 15:43:29 +02:00
A.J. Beamon
95cf9948a1 Add API version protection for the change to use a default option for used during commit protection in Java 2023-05-03 16:18:11 -07:00
A.J. Beamon
fef2967d62 Fix several issues found by flake8. Ignore E402, which detects when we have import statements not at the top of the file, since we have many files that use this pattern and are not easy to fix. 2023-05-02 10:06:40 -07:00
A.J. Beamon
182dc93ebd Apply black format to most Python files, excluding a few cases where we have Python 2 files and a few files written externally. Add external files as exclusions to the precommit checks. 2023-04-28 11:46:41 -07:00
Jay Zhuang
8e7a5b5b22 Add the helper function to support reverse range read 2023-04-19 08:31:52 -07:00
Jay Zhuang
b7da2ed16c Fix RangeResult.readThrough misuse
Fix `RangeResult.readThrough` misuses:
1. KeyValueStores do not need to set readThrough, as it will not be
   serialized and return. Also setting it to the last key of the result
   is not right, it should at least be the keyAfter of the last key;
2. Fix NativeAPI doesn't set `RangeResult.more` in a few places;
3. Avoid `tryGetRange()` setting `readThrough` when `more` is false,
   which was a workaround for the above item 2;
4. `tryGetRangeFromBlob()` doesn't set `more` but set `readThrough` to
   indicate it is end, which was following the same above workaround I
   think. Fixed that.
5. `getRangeStream()` is going to set `more` to true and then let the
   `readThrough` be it's boundary.

Also added readThrough getter/setter function to validate it's usage.
2023-04-17 21:37:51 -07:00
hao fu
29161b2fda Revert matchIndex feature
It is not protocol compatible, revert it to avoid deployment issue.
Will have a new PR to have the feature if moving forward.
2023-04-17 09:39:45 -07:00
Jon Fu
30132ebac6
Expose list_blobbified_ranges for tenants in python API ()
* add tenant getId api to fdbcli

* expose list_blobbified_ranges for tenants in python API
2023-04-13 13:05:37 -04:00
Ata E Husain Bohra
fe0a4df06a
EaR: Implement Key Check Value semantics ()
* EaR: Implement Key Check Value semantics

Description

Key Check Value (KCV) is a checksum of cryptographic encryption key
used to validate encryption keys's integrity. FDB Encryption at-rest
relies on external KMS to supply encryption keys.

Patch proposes following major changes:
1. Implement Sha256 based KCV implementation to protect against
'baseCipher' corruption in two possible scenarios:
 a) potential corruption external to FDB
 b) potential corruption within FDB processes.
2. Scheme persists computed KCV token in block encryption header,
which then gets validated as part of header validation during
decryption.
3. FDB Encryption key derivation uses HMAC_SHA256 digest generation
scheme, which allows max 64 bytes of 'cipher buffer', patch add
required check to ensure 'baseCipher' length are within bounds.
OpenSSL HMAC underlying call ignores extra length if supplied, however,
it weakens the security guarantees, hence, disallowed.

Testing

devRunCorrectness - multiple 500K runs
Valgrind & Asan - BlobCipherUnit, RESTKMSUnit, BlobGranuleCorrectness*,
EncryptionOps, EncryptKeyProxyTest
2023-04-12 14:29:31 -07:00
Vaidas Gasiunas
894f555e95
Test loop profiler using API Tester ()
* Api Tester: Specify knobs in the toml file; Test loop profiler

* Gracefully stop the loop profiler thread

* Protect loop profiler thread by mutex

* Create loop  profiler thread only if is not stopped
2023-03-30 23:00:23 +02:00