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

tarantool / tarantool / 23356403126
88%
master: 88%

Build:
Build:
LAST BUILD BRANCH: backport/release/3.7/12776
DEFAULT BRANCH: master
Ran 20 Mar 2026 06:31PM UTC
Jobs 1
Files 521
Run time 1min
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

20 Mar 2026 06:10PM UTC coverage: 87.632% (+0.02%) from 87.609%
23356403126

push

github

Gerold103
relay: track when last WAL row was sent

The relay's intention was to mark the heartbeats with timestamps
as soon as no WAL rows are sent since the last heartbeat. First
heartbeat after a last WAL row always has timestamp 0.

It is done so the heartbeats wouldn't inject too new real time
timestamps into the stream, making the lag on replica jump up and
down.

On subscribe one heartbeat is forced to be sent after processing
the journal entries which piled up since the replica connected
last time. It was added in order for the applier to immediately
transition its state from 'sync' to 'follow' if it is up to date.

This step was needed because the last sent WAL row could have a
super old timestamp (if master is mostly idle). Forcing a
heartbeat after that tells the applier that the master actually
has no more rows to send and the lag is good.

This seems to get broken when Raft messages entered the picture.
Raft messages are rows which are sent using relay_send(), but
they have no WAL timestamp (because they aren't from WAL). And
yet they bump last_row_time, which was used by the heartbeats to
understand if they are sent between WAL rows or not.

The patch fixes it by moving the tracking of WAL rows sending into
a separate member of relay, not affected by "in-memory" messages
such as the ones from Raft.

Closes #12025

NO_DOC=bugfix

(cherry picked from commit a6a265ad1)

70213 of 118099 branches covered (59.45%)

3 of 3 new or added lines in 1 file covered. (100.0%)

30 existing lines in 14 files now uncovered.

105493 of 120382 relevant lines covered (87.63%)

1409689.61 hits per line

Coverage Regressions

Lines Coverage ∆ File
9
88.14
-7.63% src/box/vy_regulator.c
4
96.95
-0.41% src/lib/msgpuck/msgpuck.h
3
93.62
-0.43% src/box/memtx_space.c
3
85.87
-0.16% src/box/xlog.c
2
92.52
-0.09% src/box/vinyl.c
1
88.96
-0.61% src/box/engine.c
1
96.88
-1.56% src/box/engine.h
1
90.14
-0.08% src/box/vy_log.c
1
95.74
0.0% src/box/vy_range.c
1
88.43
0.2% src/box/vy_run.c
1
63.97
3.13% src/lib/core/fio.c
1
90.38
-1.77% src/lib/core/trigger.cc
1
96.1
-0.05% src/lib/salad/bps_tree.h
1
22.7
-0.02% src/lib/uri/uri_parser.c
Jobs
ID Job ID Ran Files Coverage
1 23356403126.1 20 Mar 2026 06:31PM UTC 521
87.63
GitHub Action Run
Source Files on build 23356403126
  • Tree
  • List 521
  • Changed 28
  • Source Changed 0
  • Coverage Changed 28
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 6a23885e on github
  • Prev Build on release/3.6 (#23219759090)
  • Next Build on release/3.6 (#23479289782)
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