Avoid `cluster_version_changed` errors on startup when using the MVC
This is a proof-of-concept for an idea I had to avoid the cluster_version_changed error that happens on startup when connecting with the MVC. Rather than forcing you to re-run the transaction, this uses a new DisconnectedTransaction class to buffer up the intended operations and apply them when the connection is established.
It has not been tested in any way.
Code-Reviewer Section
The general pull request guidelines can be found here.
Please check each of the following things and check all boxes before accepting a PR.
- [ ] The PR has a description, explaining both the problem and the solution.
- [ ] The description mentions which forms of testing were done and the testing seems reasonable.
- [ ] Every function/class/actor that was touched is reasonably well documented.
For Release-Branches
If this PR is made against a release-branch, please also check the following:
- [ ] This change/bugfix is a cherry-pick from the next younger branch (younger
release-branchormainif this is the youngest branch) - [ ] There is a good reason why this PR needs to go into a release branch and this reason is documented (either in the description above or in a linked GitHub issue)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 8ae219e5688babef7edcfae540d7e3b1b6d284bf
- Duration 0:14:45
- Result: :x: FAILED
- Error:
Error while executing command: ninja -v -C build_output -j ${NPROC} all packages strip_targets. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 8ae219e5688babef7edcfae540d7e3b1b6d284bf
- Duration 0:14:49
- Result: :x: FAILED
- Error:
Error while executing command: ninja -v -C build_output -j ${NPROC} all packages strip_targets. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 8ae219e5688babef7edcfae540d7e3b1b6d284bf
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr-macos on macOS BigSur 11.5.2
- Commit ID: 8ae219e5688babef7edcfae540d7e3b1b6d284bf
- Duration 0:43:10
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 883780387dcc064bc295dc6e75d06995e56cc7d4
- Duration 0:14:18
- Result: :x: FAILED
- Error:
Error while executing command: ninja -v -C build_output -j ${NPROC} all packages strip_targets. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 883780387dcc064bc295dc6e75d06995e56cc7d4
- Duration 0:14:57
- Result: :x: FAILED
- Error:
Error while executing command: ninja -v -C build_output -j ${NPROC} all packages strip_targets. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 883780387dcc064bc295dc6e75d06995e56cc7d4
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr-macos on macOS BigSur 11.5.2
- Commit ID: 883780387dcc064bc295dc6e75d06995e56cc7d4
- Duration 0:42:59
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: b527e0cb89ca9ac93a1cd25181bad12d9e529d70
- Duration 0:47:55
- Result: :x: FAILED
- Error:
Error while executing command: ctest -j ${NPROC} --no-compress-output -T test --output-on-failure. Reason: exit status 8 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: b527e0cb89ca9ac93a1cd25181bad12d9e529d70
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Doxense CI Report for Windows 10
- Commit ID: 4ba94adc64869161cb350dbf190c73006eec550c
- Result: :heavy_check_mark: SUCCEEDED
- Build Logs (available for 30 days)
Result of foundationdb-pr on Linux CentOS 7
- Commit ID: 4ba94adc64869161cb350dbf190c73006eec550c
- Duration 0:47:54
- Result: :x: FAILED
- Error:
Error while executing command: ctest -j ${NPROC} --no-compress-output -T test --output-on-failure. Reason: exit status 8 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: b527e0cb89ca9ac93a1cd25181bad12d9e529d70
- Duration 4:02:10
- Result: :x: FAILED
- Error:
Error while executing command: if $(grep -q -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log); then echo "TESTS FAILED SEE THESE LOGS:"; echo ; grep -l -- "--- FAIL:" ${CODEBUILD_SRC_DIR}/fdb-kubernetes-tests/logs/*.log; exit 1; fi. Reason: exit status 1 - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)
Result of foundationdb-pr-cluster-tests on Linux CentOS 7
- Commit ID: 4ba94adc64869161cb350dbf190c73006eec550c
- Duration 3:40:19
- Result: :white_check_mark: SUCCEEDED
- Error:
N/A - Build Logs (available for 30 days)
- Build Artifact (available for 30 days)