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

tarantool / tarantool / 14384401446
88%

Build:
DEFAULT BRANCH: master
Ran 10 Apr 2025 03:47PM UTC
Jobs 1
Files 518
Run time 2min
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

10 Apr 2025 03:29PM UTC coverage: 87.495% (+0.01%) from 87.481%
14384401446

push

github

Totktonada
replication: wait for bs leader without upstreams

The `supervised` bootstrap strategy allows to run `box.cfg()` with
desired initial configuration first and then issue a command to
bootstrap the database on a particular instance. The instances are
waiting for the bootstrap command during the replication connect timeout
period (30 seconds by default).

However, before this commit this flow doesn't work for a single-instance
replicaset without itself in `box.cfg.replication` (which is fine,
because it is fine to don't have `box.cfg.listen` at all).

This difference requires to implement two different replicaset bootstrap
flows that would significantly complicate a logic in #10857 that
implements the `native` bootstrap strategy.

However, we can eliminate the difference on the lower level and follow
the same logic for the single-instance replicaset as we do for the
multi-instance replicaset. And it magically simplifies the upper level
logic too. Win-win.

This commit makes the initial `box.cfg()` wait for the bootstrap leader
in the `supervised` bootstrap strategy even if `box.cfg.replication` is
`nil` or empty.

Needed for #10857

@TarantoolBot document
Title: box.cfg() waits for a bootstrap leader if there are no upstreams

The `supervised` bootstrap strategy now allows to bootstrap a
single-instance replicaset in the same way as multi-instance one: run
`box.cfg({bootstrap_strategy = 'supervised'})` and wait for the
`box.ctl.make_bootstrap_leader(<...>)` command.

70311 of 123993 branches covered (56.71%)

19 of 20 new or added lines in 2 files covered. (95.0%)

396 existing lines in 15 files now uncovered.

103444 of 118229 relevant lines covered (87.49%)

3072442.48 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
95.66
-0.24% src/box/replication.cc

Uncovered Existing Lines

Lines Coverage ∆ File
1
92.5
0.04% src/box/vinyl.c
1
96.3
-3.7% src/cpu_feature.c
1
92.84
-0.1% src/lib/core/fiber.c
1
90.38
-1.92% src/lib/core/trigger.cc
2
93.96
-0.48% src/box/vy_write_iterator.c
2
84.24
-0.1% src/box/xlog.c
2
85.71
-9.52% src/lib/core/tt_sigaction.c
3
91.0
-0.2% src/box/vy_scheduler.c
4
94.15
-0.53% src/box/vy_range.c
6
95.2
-1.25% src/box/vy_read_iterator.c
6
87.44
-0.39% src/box/vy_run.c
10
87.8
1.32% src/box/lua/ctl.c
35
95.66
-0.24% src/box/replication.cc
124
87.37
0.01% src/box/alter.cc
198
90.97
0.14% src/box/box.cc
Jobs
ID Job ID Ran Files Coverage
1 14384401446.1 10 Apr 2025 03:47PM UTC 518
87.49
GitHub Action Run
Source Files on build 14384401446
  • Tree
  • List 518
  • Changed 34
  • Source Changed 0
  • Coverage Changed 34
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 08c7ff16 on github
  • Prev Build on master (#14377071761)
  • Next Build on master (#14384818421)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc