[Tarantool-patches] [PATCH 8/8] replication: write and read CONFIRM entries
Leonid Vasiliev
lvasiliev at tarantool.org
Thu Jun 18 14:32:45 MSK 2020
Add commit:
replication: fix for "replication: write and read CONFIRM entries"
As I understand it, an entry is deleted in txn_limbo_wait_complete(),
so don't delete it from the queue in txn_limbo_ack().
[TO BE SQUASHED INTO THE PREVIOUS COMMIT]
diff --git a/src/box/txn_limbo.c b/src/box/txn_limbo.c
index 03cbed7..a07ed24 100644
--- a/src/box/txn_limbo.c
+++ b/src/box/txn_limbo.c
@@ -198,7 +198,7 @@ txn_limbo_ack(struct txn_limbo *limbo, uint32_t
replica_id, int64_t lsn)
assert(limbo->instance_id != REPLICA_ID_NIL);
int64_t prev_lsn = vclock_get(&limbo->vclock, replica_id);
vclock_follow(&limbo->vclock, replica_id, lsn);
- struct txn_limbo_entry *e, *tmp;
+ struct txn_limbo_entry *e;
struct txn_limbo_entry *last_quorum = NULL;
rlist_foreach_entry(e, &limbo->queue, in_queue) {
if (e->lsn <= prev_lsn)
@@ -220,8 +220,7 @@ txn_limbo_ack(struct txn_limbo *limbo, uint32_t
replica_id, int64_t lsn)
* Wakeup all the entries in direct order as soon
* as confirmation message is written to WAL.
*/
- rlist_foreach_entry_safe(e, &limbo->queue, in_queue, tmp) {
- rlist_del_entry(e, in_queue);
+ rlist_foreach_entry(e, &limbo->queue, in_queue) {
fiber_wakeup(e->txn->fiber);
if (e == last_quorum)
break;
More information about the Tarantool-patches
mailing list