Skip to content

Release 2.14.0 - #1349

Merged
bigbes merged 2 commits into
masterfrom
bigbes/release-v2.14.0
Aug 7, 2026
Merged

Release 2.14.0#1349
bigbes merged 2 commits into
masterfrom
bigbes/release-v2.14.0

Conversation

@bigbes

@bigbes bigbes commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Overview

This release introduces cluster backup and restore: tt backup plans a backup, takes it on the nodes, uploads the archives with a cluster manifest to file or S3 storage, and verifies and prunes that storage, while tt restore plans a recovery point and prepares the instance work directories for it. It also adds cluster topology discovery with tt cluster topology and the \history command in the interactive console, and fixes line loss and hangs in tt log -f around log rotation.

Only the CHANGELOG is changed here — the code landed in the preceding pull requests. The entries below are shortened to their first sentence; see CHANGELOG.md for the full text.

Added

  • tt backup start and tt backup finalize: add support for creating and finalizing local backup artifacts.
  • tt cluster topology: add cluster topology discovery from a file, etcd, or Tarantool Config Storage with table and JSON output.
  • tt backup last: add support for displaying the latest backup manifest from file or S3 storage.
  • tt backup verify: add a read-only health check of a backup storage: missing and corrupted archives, breaks in the backup chain, and dangling archives.
  • tt backup gc: add retention-based cleanup of a backup storage.
  • tt backup plan: add backup planning command that computes last valid manifest for tt backup start.
  • tt backup upload: add a command that builds a cluster manifest from per-shard fragments and uploads archives and the manifest to file or S3 storage.
  • tt backup plan, upload, verify, gc, last and tt restore plan: --cluster-name and --environment select the <storage_root>/<cluster_name>/<environment>/ subtree of the storage, so one storage can hold several clusters.
  • tt restore plan: add restore planning on the manager host.
  • tt restore apply: add preparation of an instance work directory from a backup chain.
  • tt connect: add \history command to display the last executed commands in the interactive console.

Changed

  • tt stop: preliminary interrupts the processes to enable parallel termination.
  • tt create vshard_cluster: the generated rockspec now pins vshard 0.1.42 instead of 0.1.25.
  • tt backup: remove creation_duration from the cluster manifest — the field was unused and is no longer serialized.

Fixed

  • tt log -f: possible line loss/duplication on rename, hanging after a watched log directory is removed, and lines written just as the file was read to the end not showing up until the next write.

Part of TNTP-9154

@bigbes bigbes added the full-ci Enables full ci tests label Aug 6, 2026
@bigbes
bigbes force-pushed the bigbes/release-v2.14.0 branch 4 times, most recently from 34232db to 542f80c Compare August 6, 2026 10:59
bigbes added 2 commits August 6, 2026 14:21
`CartridgeApp.set_failover` returned as soon as `tt cartridge failover
setup` reported success, but the clusterwide config patch it makes
drives every instance through ConfiguringRoles once more. A command
issued right after it raced with that reconfiguration and got

    failed to edit replicasets: Prepare2pcError: "localhost:8010":
    Instance state is ConfiguringRoles, can't apply config in this state

which flaked test_promote_cartridge_failovers on Tarantool 1.10 and 2.x.

The wait `bootstrap` did inline is extracted into
`wait_inst_roles_configured`, which now looks at the last recorded state
transition instead of the presence of any, so it is usable after an
arbitrary reconfiguration and not only right after bootstrap.
`set_failover` waits before returning.

`bootstrap` itself passed no --timeout, leaving `tt replicaset
bootstrap` with its 10s default. That is not enough for a two-phase
commit over the whole cluster on a loaded runner, and
test_vshard_bootstrap_cartridge errored in setup with

    failed to edit replicasets: NetboxCallError: "localhost:8010":
    Timeout exceeded

so the helper now asks for 60s.

Part of TNTP-9154
Part of TNTP-9154
@bigbes
bigbes force-pushed the bigbes/release-v2.14.0 branch from 542f80c to 66a94d5 Compare August 6, 2026 11:43
@bigbes
bigbes merged commit 995a1cf into master Aug 7, 2026
65 of 76 checks passed
@bigbes
bigbes deleted the bigbes/release-v2.14.0 branch August 7, 2026 04:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Enables full ci tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants