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

tarantool / crud / 33235083577
89%

Build:
DEFAULT BRANCH: master
Ran 29 Aug 2026 05:23AM UTC
Jobs 1
Files 68
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

29 Aug 2026 04:59AM UTC coverage: 88.52% (+0.2%) from 88.305%
33235083577

push

github

Satbek
fix: retry a call only after a recovery action

call_with_retry_and_recovery() retried every failed call once, whatever
the error was, and for a single call it followed the destination
reported in a bucket ref error. The destination may not have received
the bucket yet, so in fast mode the request was applied there against
an empty space and the same key could end up on two storages. An
unrelated failure -- a storage error, a timeout -- was retried just as
blindly, silently doubling the requested timeout.

Recovery becomes an explicit step: recover_from_err() performs an
action for the errors it knows and only then reports whether a retry
makes sense. The master is located on MISSING_MASTER and the cached one
is updated on NON_MASTER; on WRONG_BUCKET, BUCKET_IS_LOCKED and
TRANSFER_IS_IN_PROGRESS the route cache is reset and the target is
re-discovered via vshard:route() instead of being taken from the error.
If the action did not help, or the error is anything else, it is
returned to the caller as is. A deadline is taken before the first
attempt, so the retry never runs past the requested timeout.

Map calls recover from MISSING_MASTER only: vshard does not search for
a master on an async call and reports it right away, while storage
errors arrive later, in the future payload -- see #513.

On the test side, the safe mode setup is extracted from
helpers.start_cluster() into helpers.set_safe_mode(), so that a test
can toggle the mode on a running cluster.

Closes #509.

49 of 64 new or added lines in 1 file covered. (76.56%)

24 existing lines in 4 files now uncovered.

5459 of 6167 relevant lines covered (88.52%)

12284.56 hits per line

Uncovered Changes

Lines Coverage ∆ File
15
89.69
4.88% crud/common/call.lua

Coverage Regressions

Lines Coverage ∆ File
9
94.48
0.0% crud/common/sharding/init.lua
7
92.08
-0.92% crud/common/rebalance.lua
5
89.69
4.88% crud/common/call.lua
3
88.46
0.37% crud/common/vshard_utils.lua
Jobs
ID Job ID Ran Files Coverage
1 33235083577.1 29 Aug 2026 05:23AM UTC 68
88.52
GitHub Action Run
Source Files on build 33235083577
  • Tree
  • List 68
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • a305aa19 on github
  • Prev Build on master (#29815484247)
  • Next Build on master (#33390845416)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc