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

tarantool / tarantool / 23263876157
88%

Build:
DEFAULT BRANCH: master
Ran 18 Mar 2026 08:02PM UTC
Jobs 1
Files 526
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

18 Mar 2026 07:47PM UTC coverage: 87.687% (+0.009%) from 87.678%
23263876157

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

70547 of 118689 branches covered (59.44%)

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

24 existing lines in 14 files now uncovered.

106066 of 120960 relevant lines covered (87.69%)

1358189.05 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
91.48
-0.03% src/box/box.cc
1
96.07
-0.05% src/box/iproto.cc
1
92.7
0.04% src/box/vinyl.c
1
95.74
-0.53% src/box/vy_range.c
1
92.29
0.2% src/box/vy_scheduler.c
1
85.79
-0.11% src/box/xlog.c
1
95.4
-1.15% src/lib/core/histogram.c
1
96.1
-0.05% src/lib/salad/bps_tree.h
2
88.16
-0.13% src/box/vy_run.c
2
89.99
0.0% src/box/xrow.c
2
92.64
-0.41% src/box/xrow_update_field.c
2
80.95
-9.52% src/lib/core/tt_sigaction.c
2
96.95
-0.1% src/lib/msgpuck/msgpuck.h
6
95.22
-1.25% src/box/vy_read_iterator.c
Jobs
ID Job ID Ran Files Coverage
1 23263876157.1 18 Mar 2026 08:02PM UTC 526
87.69
GitHub Action Run
Source Files on build 23263876157
  • Tree
  • List 526
  • Changed 30
  • Source Changed 0
  • Coverage Changed 30
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • a6a265ad on github
  • Prev Build on master (#23217084219)
  • Next Build on master (#23300314891)
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