Add txn-tester transaction/isolation bug-detection builders#975
Open
arcivanov wants to merge 1 commit into
Open
Add txn-tester transaction/isolation bug-detection builders#975arcivanov wants to merge 1 commit into
arcivanov wants to merge 1 commit into
Conversation
Integrate txn-tester (TROC, Fucci and APTrans bundled in a single image) into the
non-latent master, modelled on the WordPress eco-test wiring: run the freshly
CI-built MariaDB docker-library image in a pod and point the tools at it over the
pod-local loopback.
- docker-library-build.sh: retain a "<image>-txntester" tag on the amd64 image
(alongside "-wordpress") so the factory has the CI-built MariaDB to run against.
- master-nonlatent: getTxnTesterFactory() runs the three tools sequentially via
podman against the pod-local MariaDB and uploads their artifacts. Two builders
are added: a light per-build profile (~6-7 min) and a soak profile (~30 min).
- The tools never exit non-zero on a finding, so the image maps a discovered
inconsistency to the exotic exit code 100; decodeRC={0:SUCCESS,100:FAILURE}
turns a found transaction anomaly red, distinct from infrastructural failures
(image pull / classpath / connection), which keep their own codes.
- f_dockerlibrary triggers the light builder on every saved-package build and the
soak builder instead on "txn"-prefixed branches (isTxnTesterBranch), mirroring
the not-/is-branch split used for Jepsen.
- constants/schedulers: BUILDERS_TXN_TESTER[_SOAK] + s_txn_tester[_soak].
Image: ghcr.io/arcivanov/txn-tester:0.0.2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Integrates txn-tester — a single image bundling three DBMS transaction /
isolation bug-detection tools, all built from source — into the non-latent
master:
tcse-iscas/TrocReverie4u/FucciPaper-code-sigmod/APTransIt is wired exactly like the WordPress eco-test (
f_wordpress): the freshlyCI-built MariaDB docker-library image is run in a pod and the tools are pointed at
it over the pod-local loopback. The tools connect to MariaDB purely via
environment variables; this adds no MariaDB build of its own.
How
scripts/docker-library-build.sh— retain a<image>-txntestertag on theamd64 image (next to the existing
-wordpresstag) so the factory has theCI-built MariaDB to run against.
master-nonlatent/master.cfg—getTxnTesterFactory()creates a pod, runsthe CI-built MariaDB, then runs the three tools sequentially via
podmananduploads their artifacts. Two builders:
amd64-rhelN-txntester, ~6–7 min) — fast per-build signal;amd64-rhelN-txntester-soak, ~30 min) — deep coverage, opt-in.f_dockerlibrarytriggers the light builder on every saved-package build,and the soak builder instead on
txn-prefixed branches (isTxnTesterBranch),mirroring the
not/is-branch split used for Jepsen.constants.py/schedulers_definition.py—BUILDERS_TXN_TESTER[_SOAK]and
s_txn_tester[_soak].Bug signalling
The upstream tools never exit non-zero on a finding (TROC/Fucci loop until killed
by
timeoutand only log aBUG REPORT; APTrans only writes acheck/artifactthen exits 0). The image therefore maps a discovered inconsistency to the exotic
exit code 100, and the steps use
decodeRC={0: SUCCESS, 100: FAILURE}so afound transaction anomaly turns the build red and is distinguishable from an
infrastructural failure (image pull / classpath / connection), which keep their
own non-zero codes.
Image
Pulled from
ghcr.io/arcivanov/txn-tester:0.0.2(--pull=always), pinned forreproducibility. It lives in its own repo for now; if MariaDB adopts it, only the
image reference changes (optionally adding an in-tree
eco_build_imagesbuild).Notes
./validate_master_cfg.sh -e DEV— all master configs check out.against stock MariaDB within a short run, so these builders will go red fairly
often. That is the intended finding→red→triage behaviour; whether the reports
are true anomalies or tool noise is worth review before treating red/green as a
clean pass/fail signal.