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

tarantool / tarantool / 14269084504
88%
master: 88%

Build:
Build:
LAST BUILD BRANCH: i12147-refact
DEFAULT BRANCH: master
Ran 04 Apr 2025 03:58PM 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

04 Apr 2025 03:44PM UTC coverage: 87.478% (+0.002%) from 87.476%
14269084504

push

github

sergepetrenko
salad: fix crash on insertion into bps tree with OOM conditions

On insertion into bps tree we first reserve blocks for the case we
need to insert new leaf during rebalancing. Next there can be a free
block on last extent in matras but no more free extents in tuple arena.
So `bps_tree_reserve_blocks()` is able to allocate a block but then
`bps_tree_garbage_push()` is called that touches a block. As there no
free extents touch is failed which is unexpected and causes a crash.

We don't need to touch the block on this path as block is newly allocated
and is not shared with any read view. We don't need to touch block on
other paths too (disposing a leaf or a inner node) because we move data
from this node before so it is already should be touched.

So just don't touch the block in `bps_tree_garbage_push()`.

The issue is introduced in the commit 51c56d9b3319 ("salad: reserve
extents for matras_touch on BPS tree operations") and unlocked in the
commit 32b0678a74ab ("memtx: reserve extents in the RTREE index itself")
where we removed crutches where we heuristically reserve memory for
index operations.

Closes #11326

NO_DOC=bugfix

(cherry picked from commit 46cc98ba8)

69960 of 123833 branches covered (56.5%)

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

41 existing lines in 17 files now uncovered.

102963 of 117701 relevant lines covered (87.48%)

2192632.93 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
96.14
-0.18% src/box/relay.cc
1
80.74
-0.41% src/box/tuple_bloom.c
1
93.62
0.0% src/box/vy_range.c
1
91.21
-0.1% src/box/vy_scheduler.c
1
90.38
-1.92% src/lib/core/trigger.cc
1
96.15
-0.06% src/lib/salad/bps_tree.h
1
95.24
-1.59% src/lib/small/include/small/quota.h
2
95.84
-0.11% src/box/iproto.cc
2
90.6
-0.19% src/box/memtx_engine.cc
2
87.43
0.13% src/box/vy_run.c
2
86.27
-0.42% src/box/vy_stmt.c
2
97.15
-0.1% src/lib/msgpuck/msgpuck.h
3
90.78
-0.15% src/box/applier.cc
4
94.62
0.0% src/box/xrow_update_field.c
4
92.84
-0.39% src/lib/core/fiber.c
4
81.82
-12.12% src/lua/minifio.c
9
88.14
-7.63% src/box/vy_regulator.c
Jobs
ID Job ID Ran Files Coverage
1 14269084504.1 04 Apr 2025 03:58PM UTC 518
87.48
GitHub Action Run
Source Files on build 14269084504
  • Tree
  • List 518
  • Changed 28
  • Source Changed 0
  • Coverage Changed 28
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 82c23f2e on github
  • Prev Build on release/3.3 (#14263366490)
  • Next Build on release/3.3 (#14306176422)
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