[Tarantool-patches] [PATCH v10 0/4] limbo: implement packets filtering

Cyrill Gorcunov gorcunov at gmail.com
Wed Aug 4 22:07:48 MSK 2021

Replication tests are passing but gihutb tests are not: the series
is on top of Serge's branch `sp/gh-6034-empty-limbo-transition` which
is failing yet.

Vlad, back to your question about one single test for
CONFIRM/ROLLBACK packet filtering

 > Is it the only issue? What about ROLLBACK coming to
 > an instance, which already made PROMOTE on the rolled back
 > data? That is a part of the original problem in the ticket.

if any confirm/rollback comes at the moment when our limbo is
already empty I think we can't do anything, there is no data
to investigate and the node should rejoin from the scratch,
or you have something else in mind? If yes, then we can extend
our confirm/rollback filter chain with more cases.

We've a long discussion with Serge about current packet validation
in PROMOTE/DEMOTE filter so I reworked the validation a lot, please
take a look.

previous series https://lists.tarantool.org/tarantool-patches/20210730113539.563318-1-gorcunov@gmail.com/
branch gorcunov/gh-6036-rollback-confirm-10-notest
issue https://github.com/tarantool/tarantool/issues/6036

 - use txn_limbo_terms name for structure
 - rebase on fresh sp/gh-6034-empty-limbo-transition branch
 - rework filtering chains
 - add ability to disable filtering for local recovery
   and join stages
 - update tests
 - opencode terms tracking
 - fix tests to use wait function since log output might
   be deferred by OS
 - rework FILTER_IN and FILTER_PROMOTE chains with more
   detailed packets inspection
 - preserve old naming for terms manipulations
 - require the packet's replica_id to match limbo owner_id
   all the time

Cyrill Gorcunov (4):
  latch: add latch_is_locked helper
  limbo: order access to the limbo terms
  limbo: filter incoming synchro requests
  test: add replication/gh-6036-rollback-confirm

 src/box/applier.cc                            |  31 +-
 src/box/box.cc                                |  11 +-
 src/box/memtx_engine.c                        |   3 +-
 src/box/txn_limbo.c                           | 367 ++++++++++++++++--
 src/box/txn_limbo.h                           |  79 +++-
 src/lib/core/latch.h                          |  11 +
 test/replication/gh-6036-master.lua           |   1 +
 test/replication/gh-6036-node.lua             |  33 ++
 test/replication/gh-6036-replica.lua          |   1 +
 .../gh-6036-rollback-confirm.result           | 180 +++++++++
 .../gh-6036-rollback-confirm.test.lua         |  92 +++++
 11 files changed, 757 insertions(+), 52 deletions(-)
 create mode 120000 test/replication/gh-6036-master.lua
 create mode 100644 test/replication/gh-6036-node.lua
 create mode 120000 test/replication/gh-6036-replica.lua
 create mode 100644 test/replication/gh-6036-rollback-confirm.result
 create mode 100644 test/replication/gh-6036-rollback-confirm.test.lua

base-commit: 9b668f4f8508ee890f4b643b0f9ec16024939bff

More information about the Tarantool-patches mailing list