Commit Graph

18570 Commits

Author SHA1 Message Date
Steve Atherton bade9a3ec3 Added toString() methods for DeltaTree::DecodeCache. 2022-03-10 00:07:22 -08:00
Steve Atherton 6cb5f86994 Added a boundary sample to the boundary verifier, which clear operations in the Redwood unit test will randomly make use of. Added cold start limit in BTree unit test to prevent test running too long, and a few other parameter changes. 2022-03-09 23:17:55 -08:00
Steve Atherton c76ba149b2 Removed unnecessary line as it does nothing, updated comment. 2022-03-09 20:28:14 -08:00
Steve Atherton 81d1e70435 Bug fix: Remap cleanup must delay freeing of unmapped destination pages until the oldest readable version passes the current latest readable version to prevent a very slow reader from reading a page after it has been recycled and reused. This is a very rare bug, seen in about 1 in 1 million runs of the Redwood unit test. 2022-03-09 19:08:00 -08:00
Steve Atherton 2ec15965ba No logic changes, just debugging output changes and variable renames for clarity. 2022-03-09 18:45:03 -08:00
Steve Atherton e96dc76aad Bug fix: When a BTree node is updated and is to the left of a completely removed sibling subtree the placeholder record providing its upper decode boundary could be lost because expectedUpperBound was not being set. 2022-03-08 03:56:29 -08:00
Steve Atherton d034d0c30f Bug fix in boundary verifier which caused false failures after a process restart when a commit was in progress because the verification map would contain changes that were rolled back. 2022-03-08 03:33:22 -08:00
Steve Atherton 77f06eedfd Use printable() on page boundary debug output. 2022-03-07 23:21:07 -08:00
Steve Atherton 8f844437da Avoid unused variable warning when debug output is not on. 2022-03-07 23:12:32 -08:00
Steve Atherton 9f690d5bd5 Added StringRef::same() which checks data pointers and lengths for match. Fixed a false negative (but not a bug) in boundariesNormal() and used same() to avoid string comparisons. 2022-03-07 22:44:24 -08:00
Steve Atherton 35df00eba2 Re-enable simulation-only boundary verification. 2022-03-07 22:31:29 -08:00
Steve Atherton 55c98a4287 Large refactor of redwood debug output to improve context and readability. 2022-03-07 22:30:20 -08:00
Steve Atherton 11f25bc08f Initialize decode boundary verifier to nullptr for restart tests, also disable check for now as the feature is not finished. 2022-03-04 17:20:31 -08:00
Steve Atherton f03c0b8c3c Added ISimulated::restarted for detecting a restarted simulation test. 2022-03-04 17:19:46 -08:00
Steve Atherton 9f1d4580e4 Added simulation-only verification of DeltaTree initialization boundaries between writes and reads over time. 2022-03-01 23:46:38 -08:00
Steve Atherton ee5030d06c Fixed memory "leak" where child node update tracker entries for freed internal pages were not removed so the map would just grow. 2022-02-28 00:16:10 -08:00
Steve Atherton 398374c7d7 Rename cacheSizeBytes to pageCacheBytes to match other tests. 2022-02-27 00:36:23 -08:00
Steve Atherton 73a81a86da Added Redwood metrics printing during set unit test using new generic repeatEvery() actor. 2022-02-26 23:37:30 -08:00
Steve Atherton 3a666610ad Tweaked Redwood unit test ops limits and added total record read count to prevent test instances that run too long. 2022-02-26 23:36:37 -08:00
Steve Atherton 6f16702042 Merge branch 'main' of https://github.com/apple/foundationdb into redwood-bug-fixes-and-memory-leak 2022-02-26 18:00:18 -08:00
sfc-gh-tclinkenbeard 90927cffe9 Set disableHostname=true in CycleTestRestart downgrade test 2022-02-26 17:56:56 -08:00
Steve Atherton c122cf1ce0 Bug fix: Avoid having a local temporary Cursor destructed after the Reference<Page> containing its DecodeCache has been dropped by using the BTreeCursor's leaf cursor by reference. 2022-02-26 02:03:43 -08:00
Steve Atherton a47f481bae Bug fix, the extent cache used during recovery is not allowed to evict anything so it now uses a private Evictor with no size limit. 2022-02-25 19:21:11 -08:00
Renxuan Wang 233c918ffb Replace printf() and fprintf() with fmt::print(). 2022-02-25 19:06:57 -08:00
Renxuan Wang f7eb66441d Try eliminating warnings in macOS and Windows CI builds.
MacOS warnings are format warnings, e.g., `format specifies type 'long' but the argument has type 'Version' (aka 'long long')`.
Windows warnings are `ACTOR does not contain a wait() statement`.
2022-02-25 19:06:57 -08:00
Markus Pilman 079de5ba57 Enable rocksdb unit tests 2022-02-25 15:38:16 -08:00
Markus Pilman a61dd41b45 Add an empty test to make sure noSim tests succeed 2022-02-25 15:38:16 -08:00
Andrew Noyes 276cf3a402
Fix minor bugs turned up by _GLIBCXX_DEBUG (#6375)
* Fix a benign bug turned up by _GLIBCXX_DEBUG

Just calling std::vector::operator[] with an out of bounds index at all
is technically undefined behavior.

* Fix compilation issue with _GLIBCXX_DEBUG

For some reason std::max with an initializer list isn't constexpr with
_GLIBCXX_DEBUG set
2022-02-25 13:50:41 -08:00
Andrew Noyes b58739093e
Account for possibility that fopen might fail in mako (#6442)
Fix an issue in mako where the stats process would hang if the worker process
was unable to open a file. Previously, the worker process would segfault when
trying to dereference a null FILE* and never increment the stopcount variable
in shared memory. Now we check for a null FILE* and increment stopcount when
the worker process stops regardless of success or failure.

Also don't ignore the return value from mkdir
2022-02-25 13:18:59 -08:00
Andrew Noyes 7a9217a392
Add contrib/debug_determinism (#6389)
* 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
2022-02-25 12:54:31 -08:00
Zhe Wu 57e931b489 Update 6.3.24 release notes 2022-02-25 12:12:17 -08:00
A.J. Beamon d4e6123971
Merge pull request #6457 from Doxense/fix-6449-windows-build
Fix Windows build broken by #6449
2022-02-25 09:07:20 -08:00
Mohamed Oulmahdi 5b6098b5be Fix Windows build broken by #6449 2022-02-25 16:25:45 +01:00
Steve Atherton a32c3a2891 Redwood now uses one global page cache eviction order and size limit for all page sizes, for real or virtual processes, and DecodeCache memory is counted against the global page cache budget. 2022-02-25 03:20:53 -08:00
Renxuan Wang 06b1d06d38 Support hostname in coordinators commands. 2022-02-24 23:02:29 -08:00
Renxuan Wang 70d723f70c Move the construction of ConnectionString in changeQuorumChecker() to coordinatorsCommitActor(). 2022-02-24 23:02:29 -08:00
Renxuan Wang 3e761aef3b Add resetConnectionString() function to ClusterConnectionString. 2022-02-24 23:02:29 -08:00
Renxuan Wang 3a3b44efe2 Fix macOS CI broken by #6449.
foundationdb/fdbserver/CoroFlow.actor.cpp:262:8: error: no member named 'errorUnsuppressed' in 'BaseTraceEvent'
2022-02-24 20:26:13 -08:00
Zhe Wu 0bdae35a2c Address comments and move updateFailedEndpointRefreshTime 2022-02-24 16:35:30 -08:00
Zhe Wu 9c99c59b0c Fix get key location overloading proxies 2022-02-24 16:35:30 -08:00
A.J. Beamon 7275e312d8
Merge pull request #6449 from sfc-gh-ajbeamon/trace-enforce-suppression-order
Enforce that trace event suppression calls happen first when using trace event call chaining
2022-02-24 14:39:08 -08:00
A.J. Beamon d3be393246 Add comments to BaseTraceEvent and TraceEvent. Also make BaseTraceEvent contstructor protected. 2022-02-24 13:29:44 -08:00
A.J. Beamon e7d2abd764 Fix formatting issue 2022-02-24 12:28:13 -08:00
A.J. Beamon 250a88e682 Enforce that trace event suppression calls happen first when using trace event call chaining. Fix various instances where we weren't following this requirement. 2022-02-24 12:25:52 -08:00
Aaron Molitor 4ff60db82b Revert "Use full version of fdb to support incompatible release candidates"
This reverts commit f379cf4d05.
2022-02-24 11:55:48 -06:00
Leonidas Tsampros f379cf4d05 Use full version of fdb to support incompatible release candidates 2022-02-24 11:03:42 -06:00
Zhe Wang 541fc171f7
Merge pull request #6409 from kakaiu/log-thread-local-perfcontext-counter
Add RocksDB PerfContextMetrics
2022-02-24 08:43:24 -05:00
Markus Pilman f1189e5947
Merge pull request #6384 from vikasgupta8/ppc64le_support
added support for ppc64le
2022-02-24 14:31:31 +01:00
Zhe Wang f14e08a991 addRocksDBPerfContextMetrics 2022-02-23 22:29:07 -05:00
Ata E Husain Bohra 344a14b010
Update StreamCipher ctx/cipher management to respect determinism (#6427)
* Update StreamCipher ctx/cipher management to respect determinism

StreamCipher keeps record of CipherKeys created
(including globalCipherKey) to ensure the sensitive data gets
ZERO-OUT and not recorded as part of FDB process dump. However,
in current code it is maintained as an unordered_set indexed
by the object itself. Approach adds non determinism given
object pointer based indexing scheme.

Patch addresses the concern by updating the recording to use
a map indexed by UID.
2022-02-22 17:34:29 -08:00