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

tarantool / tarantool / 25000294112
86%
master: 88%

Build:
Build:
LAST BUILD BRANCH: fmt-util-2
DEFAULT BRANCH: master
Ran 27 Apr 2026 02:30PM UTC
Jobs 1
Files 480
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

27 Apr 2026 02:15PM UTC coverage: 86.118% (+0.003%) from 86.115%
25000294112

push

github

sergepetrenko
txn: forbid waiting for acks on fully local transactions

We recommend making all spaces synchronous (including the system ones)
whenever the user has at least one of them. However, once `_truncate`
becomes synchronous, it is impossible to truncate any local space,
either on the master or on a replica. On master the truncate succeeds,
however recovering from such xlogs produces "Tarantool does not support
Non-blocking commit of a synchronous txn" error and replica disconnects
from the master with SplitBrain: "got a request mentioning future lsn".
On replica the truncate hangs (in case of Debug build the assertion for
non-ro limbo fails).

The `_truncate` space itself is unusual: it marks rows related to local
spaces as GROUP_LOCAL (they are not replicated), while all other rows
remain GROUP_GLOBAL. As a result, when we truncate a local space all rows
in the transaction are local, and we add such transaction to limbo. If
truncate of local space happens on master, the transaction is confirmed
and since replica doesn't have it, SplitBrain occurs. On replica such
truncate cannot be confirmed, since replica is not an owner of the
limbo.

We should not mark such transactions as synchronous. Instead, it should
follow the asynchronous transaction path: add them to limbo iff it's not
empty. Let's filter such case.

Closes #12585

NO_DOC=bugfix

Co-authored-by: Serge Petrenko <sergepetrenko@tarantool.org>
(cherry picked from commit 6adf3f407)

63695 of 115144 branches covered (55.32%)

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

26 existing lines in 9 files now uncovered.

94670 of 109931 relevant lines covered (86.12%)

1898326.99 hits per line

Coverage Regressions

Lines Coverage ∆ File
7
92.21
-1.07% src/box/txn_limbo.c
5
89.63
-0.51% src/box/memtx_engine.cc
3
90.08
-0.16% src/box/applier.cc
3
97.61
-0.23% src/box/memtx_tx.c
2
86.62
-0.04% src/box/box.cc
2
86.46
0.0% src/box/vy_run.c
2
95.4
-2.3% src/histogram.c
1
92.51
0.51% src/box/vinyl.c
1
95.24
-1.59% src/lib/small/include/small/quota.h
Jobs
ID Job ID Ran Files Coverage
1 25000294112.1 27 Apr 2026 02:30PM UTC 480
86.12
GitHub Action Run
Source Files on build 25000294112
  • Tree
  • List 480
  • Changed 15
  • Source Changed 0
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • c876f63b on github
  • Prev Build on release/2.11 (#24992797529)
  • Next Build on release/2.11 (#25049412553)
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