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

tarantool / tarantool / 19279600247

11 Nov 2025 09:56PM UTC coverage: 87.64% (-0.01%) from 87.65%
19279600247

push

github

Gerold103
limbo: do not limit its size on replicas

There was a possible deadlock when a replica had
box.cfg.replication_synchro_queue_max_size smaller than the
master.

The scenario was that the replica would receive some transactions,
they would all enter the limbo and wait for CONFIRM in "submitted"
state.

But the master sends more transactions instead of CONFIRM. Those
transactions block the applier fiber in txn_commit_submit(),
because the fiber can't exceed the limbo max size and is waiting
for free space.

The free space however will never appear, because those
"submitted" transactions aren't going anywhere until CONFIRM
receipt. Which in turn will never happen, because the applier
fiber is blocked on waiting for limbo space.

The only way is to let the replica apply these transactions
bypassing the limbo max size limitation. It makes no sense to
block them. Otherwise their CONFIRM can't be received.

This was probably working until commit
20aad159d ("limbo: handle
spurious wakeups on space waiting") (not counting that before that
it was broken in many other ways), but seems like wasn't covered
by the tests.

Closes #11836

NO_DOC=bugfix

70073 of 117997 branches covered (59.39%)

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

34 existing lines in 13 files now uncovered.

105253 of 120097 relevant lines covered (87.64%)

1362045.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

88.96
/src/box/engine.c


Source Not Available

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