Skip to content

Delete multitenant and metacluster features#12583

Merged
gxglass merged 102 commits intoapple:mainfrom
gxglass:delete2
Dec 9, 2025
Merged

Delete multitenant and metacluster features#12583
gxglass merged 102 commits intoapple:mainfrom
gxglass:delete2

Conversation

@gxglass
Copy link
Contributor

@gxglass gxglass commented Dec 5, 2025

These features have been previously marked for deletion per PR #12400.

This change necessarily affects a lot of files. In general I found it preferable to cut along the FDB <-> tenant boundary, rather than try to cut tenant into multiple pieces, stitch the Frankenstein tenant implementation back together with FDB, and generally remove the limbs one by one. So it is a single big deletion.

Note that some tenant-related metadata has been written in a non-flag-controlled manner by prior releases and probably must be ignored indefinitely. Fortunately this is isolated to include/fdbclient/ClientLogEvents.h. (Details: deleting an Optional from a serialized struct results in deserialization of garbage in upgrade tests. The serialized nullopt to indicate "no Tenant" is formally part of FDB persistent metadata even in FDB clusters that never would have enabled the tenant feature.)

During the course of testing these changes, many interesting bugs were encountered. I won't discuss details of them here. Causes range from flat out damage (by me) to production code in the course of removing tenant related bits (mainly in NativeAPI.actor.cpp and CommitProxy.actor.cpp), damage to various workload files (particularly FuzzApiCorrectness.actor.cpp, which is very sensitive to changes), and many toml files needing updated test flags/options.

More testing details: https://quip-apple.com/Zr6VAycxoli9

20251209-012852-gglass-8ff850b772d868f2 compressed=True data_size=35311687 duration=21671404 ended=500000 fail_fast=1000 max_runs=500000 pass=500000 priority=100 remaining=0 runtime=2:31:30 sanity=False started=500000 stopped=20251209-040022 submitted=20251209-012852 timeout=5400 username=gglass

…l of tenant. Consider removing them together.
…e that they basically contain what the name implies
…(blob granule) or which are so long deprecated that they are outside any reasonable/documented support window
…el directory. Compilation not yet attempted.
… Or at least stuff that looks adjacent to that stuff. Not compiled or tested.
…t 7 principal fdbclient/ and fdbserver/ files with a lot of tenant logic left to delete. Also, all of fdbserver/workloads needs to be looked at. Still have not attempted compilation.
… removing some functionality that appears unused or untestable by Apple.
…ences, but some lingering cleanup needed in `loadAndRun`
… documentation, and some fdbserver headers I left earlier
@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr on Linux RHEL 9

  • Commit ID: 5afa74f
  • Duration 1:04:22
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@gxglass gxglass marked this pull request as ready for review December 9, 2025 00:32
@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-cluster-tests on Linux RHEL 9

  • Commit ID: 3fc9028
  • Duration 2:15:22
  • Result: ❌ FAILED
  • Error: Error while executing command: TEST_USERNAME=fdb-pr-${CODEBUILD_BUILD_NUMBER} make -C e2e foundationdb-pr-tests. Reason: exit status 2
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)
  • Cluster Test Logs zip file of the test logs (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-cluster-tests on Linux RHEL 9

  • Commit ID: 5afa74f
  • Duration 1:57:24
  • Result: ❌ FAILED
  • Error: Error while executing command: TEST_USERNAME=fdb-pr-${CODEBUILD_BUILD_NUMBER} make -C e2e foundationdb-pr-tests. Reason: exit status 2
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)
  • Cluster Test Logs zip file of the test logs (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang-ide on Linux RHEL 9

  • Commit ID: c852ff8
  • Duration 0:23:32
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-macos-m1 on macOS Ventura 13.x

  • Commit ID: c852ff8
  • Duration 0:34:33
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang-arm on Linux CentOS 7

  • Commit ID: c852ff8
  • Duration 0:43:05
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-macos on macOS Ventura 13.x

  • Commit ID: c852ff8
  • Duration 0:49:32
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr on Linux RHEL 9

  • Commit ID: c852ff8
  • Duration 1:03:44
  • Result: ❌ FAILED
  • Error: Error while executing command: ctest -j ${NPROC} --no-compress-output -T test --output-on-failure. Reason: exit status 8
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang on Linux RHEL 9

  • Commit ID: c852ff8
  • Duration 1:15:05
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@gxglass
Copy link
Contributor Author

gxglass commented Dec 9, 2025

Result of foundationdb-pr on Linux RHEL 9

  • Commit ID: c852ff8
  • Duration 1:03:44
  • Result: ❌ FAILED
  • Error: Error while executing command: ctest -j ${NPROC} --no-compress-output -T test --output-on-failure. Reason: exit status 8
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

Failed because of

The following tests FAILED:
11 - s3_backup_tests (Timeout)
Errors while running CTest

@gxglass
Copy link
Contributor Author

gxglass commented Dec 9, 2025

Flaky s3_backup_tests ctest failed. Closing & reopening

@saintstack FYI, can s3_backup_tests ctest be retired? (Is the simulation testing good enough at this point?)

Obligatory data tagging:
https://www.youtube.com/watch?v=E9YhY3RYk_o&list=RDI6LNVOUar1A&index=2

@gxglass gxglass marked this pull request as draft December 9, 2025 19:33
@gxglass gxglass marked this pull request as ready for review December 9, 2025 19:34
@gxglass
Copy link
Contributor Author

gxglass commented Dec 9, 2025

Flaky s3_backup_tests ctest failed. Closing & reopening

Instead of that, I added an incremental commit. Same effect: trigger a run of CIs.

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang-ide on Linux RHEL 9

  • Commit ID: 848d62e
  • Duration 0:24:06
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-macos-m1 on macOS Ventura 13.x

  • Commit ID: 848d62e
  • Duration 0:34:45
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-cluster-tests on Linux RHEL 9

  • Commit ID: c852ff8
  • Duration 2:04:22
  • Result: ❌ FAILED
  • Error: Error while executing command: TEST_USERNAME=fdb-pr-${CODEBUILD_BUILD_NUMBER} make -C e2e foundationdb-pr-tests. Reason: exit status 2
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)
  • Cluster Test Logs zip file of the test logs (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang-arm on Linux CentOS 7

  • Commit ID: 848d62e
  • Duration 0:42:54
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-macos on macOS Ventura 13.x

  • Commit ID: 848d62e
  • Duration 0:49:34
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-clang on Linux RHEL 9

  • Commit ID: 848d62e
  • Duration 0:50:19
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr on Linux RHEL 9

  • Commit ID: 848d62e
  • Duration 0:53:32
  • Result: ✅ SUCCEEDED
  • Error: N/A
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)

@gxglass gxglass merged commit bab7637 into apple:main Dec 9, 2025
6 of 7 checks passed
@foundationdb-ci
Copy link
Contributor

Result of foundationdb-pr-cluster-tests on Linux RHEL 9

  • Commit ID: 848d62e
  • Duration 1:58:12
  • Result: ❌ FAILED
  • Error: Error while executing command: TEST_USERNAME=fdb-pr-${CODEBUILD_BUILD_NUMBER} make -C e2e foundationdb-pr-tests. Reason: exit status 2
  • Build Log terminal output (available for 30 days)
  • Build Workspace zip file of the working directory (available for 30 days)
  • Cluster Test Logs zip file of the test logs (available for 30 days)

@saintstack
Copy link
Contributor

@saintstack FYI, can s3_backup_tests ctest be retired? (Is the simulation testing good enough at this point?)

It hasn't failed since it got refactored to use mocks3 to the best of my knowledge? Is that your experience?

The test is useful in that if an actual s3 is available, it will use it instead of our mocks3 thingy.

Odd is that the log shows it passed....

...
2025-12-09T18:47:12+00:00 Check for Severity=40 errors
2025-12-09T18:47:13+00:00 PASSED test_s3_backup_and_restore
Shutting down MockS3Server (PID: 23590)


98% tests passed, 1 tests failed out of 54

Total Test time (real) = 1500.09 sec

The following tests FAILED:
	 11 - s3_backup_tests (Timeout)
Errors while running CTest

... but looks like it timed out.... Some process stuck around for 1500 seconds. Unless you want it gone, let me try and add some kill on the end.

See #12587 @gxglass

@gxglass
Copy link
Contributor Author

gxglass commented Dec 9, 2025

@saintstack FYI, can s3_backup_tests ctest be retired? (Is the simulation testing good enough at this point?)

It hasn't failed since it got refactored to use mocks3 to the best of my knowledge? Is that your experience?

I haven't done many PRs in the last 1.5 months (just this one big one) so can't say whether it's been acting up blocking CIs in general. But this instance on this PR looks like smoke, we could say.

See #12587 @gxglass

Thanks, will have a look.

@xis19
Copy link
Collaborator

xis19 commented Dec 12, 2025

It's always fantastic to see unused code removed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants