• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hyperledger / fabric-x-committer / 30372655358 / 1
91%
main: 91%

Build:
DEFAULT BRANCH: main
Ran 28 Jul 2026 03:25PM UTC
Files 94
Run time 5s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Jul 2026 03:17PM UTC coverage: 84.604% (+0.08%) from 84.527%
30372655358.1

push

github

web-flow
[vc] Create snapshot clone before committing the _snapshot marker (#701)

#### Type of change

- New feature
- Documentation update

#### Description

- On `_snapshot` commit, create a native zero-copy DB clone BEFORE the
marker's
txID commits, then rewrite the marker to a PENDING `SnapshotState`
carrying the
clone name — persisted atomically with the txID by the normal commit
path
  (invariant: txID committed <=> clone exists <=> PENDING row).
- Clone as of current time via plain `CREATE DATABASE ... TEMPLATE` (no
`AS OF`):
  the snapshot TX is drained/standalone, so "now" is the exact cut.
- Both backends: YugabyteDB `TEMPLATE` clone (source stays live;
requires
`enable_db_clone` + a PITR snapshot schedule); PostgreSQL `TEMPLATE ...
  STRATEGY=FILE_COPY` behind the ALLOW_CONNECTIONS/terminate dance.
- Skip cloning when the snapshot txID already exists in `tx_status`
(resubmission
or duplicate) so no orphan clone is left behind; a duplicate clone name
is
  treated as reuse. Clones are never dropped here.
- Wire the clone into the committer before the commit retry loop; on
clone
  failure the batch is not committed and the coordinator re-drives it.
- Reuse `committerpb.IsSystemNamespace`/`SystemNamespaces` from
fabric-x-common
  (bump the dep) and drop the duplicated local helpers.

#### Additional details (Optional)

- `adminExec` runs clone/admin DDL on a dedicated out-of-pool connection
with a
bounded dial timeout and is deliberately not retried (deterministic DDL
errors;
  42P04 "already exists" is mapped to success).
- Test-only `EnsureSnapshotScheduleForCloning` provisions the required
YugabyteDB
snapshot schedule per test DB (yb-admin; no SQL API); the container
enables
  `enable_db_clone`.
- Docs: added a snapshot subsection to `docs/validator-committer.md` and
a
provisioning/tuning step to `docs/deployment-guide.md` noting the
schedule is
  mandatory and retention should be kept short.
- Verified with `make test-all-db` (YugabyteDB snapshot s... (continued)

6715 of 7937 relevant lines covered (84.6%)

1215.21 hits per line

Source Files on job unit-test - 30372655358.1
  • Tree
  • List 94
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 30372655358
  • a9da1955 on github
  • Prev Job for on main (#30346792200.3)
  • Next Job for on main (#30427229518.2)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc