[Tarantool-patches] [PATCH 2/7] replication: forbid implicit limbo owner transition

Serge Petrenko sergepetrenko at tarantool.org
Mon Jun 21 13:13:02 MSK 2021



19.06.2021 01:49, Vladislav Shpilevoy пишет:
> Nice fixes!
>
> See 3 comments below.
>
>> diff --git a/src/box/errcode.h b/src/box/errcode.h
>> index 49aec4bf6..e3943c01d 100644
>> --- a/src/box/errcode.h
>> +++ b/src/box/errcode.h
>> @@ -278,6 +278,7 @@ struct errcode_record {
>>   	/*223 */_(ER_INTERFERING_PROMOTE,	"Instance with replica id %u was promoted first") \
>>   	/*224 */_(ER_RAFT_DISABLED,		"Elections were turned off while running box.ctl.promote()")\
>>   	/*225 */_(ER_TXN_ROLLBACK,		"Transaction was rolled back") \
>> +	/*226 */_(ER_SYNCHRO_QUEUE_UNCLAIMED,	"The synchronous transaction queue doesn't belong to any instance")\
> 1. Maybe SYNCHRO -> SYNC? The rationality is that we
> already have a few ER_SYNC_* about synchro replication.

Ok.

>> diff --git a/test/box/error.result b/test/box/error.result
>> index 062a90399..574521a14 100644
>> --- a/test/box/error.result
>> +++ b/test/box/error.result
>> @@ -444,6 +444,7 @@ t;
>>    |   223: box.error.INTERFERING_PROMOTE
>>    |   224: box.error.RAFT_DISABLED
>>    |   225: box.error.TXN_ROLLBACK
>> + |   226: box.error.LIMBO_UNCLAIMED
> 2. Forgot to update the result file? There is no LIMBO_UNCLAIMED error
> code. It has a new name.

Yep, sorry.

>> diff --git a/test/replication/gh-5440-qsync-ro.test.lua b/test/replication/gh-5440-qsync-ro.test.lua
>> deleted file mode 100644
>> index d63ec9c1e..000000000
>> --- a/test/replication/gh-5440-qsync-ro.test.lua
> 3. Please, drop it from suite.cfg too.
>
Sure.

Here's the diff:
========================

diff --git a/src/box/errcode.h b/src/box/errcode.h
index e3943c01d..bb3cf5eb9 100644
--- a/src/box/errcode.h
+++ b/src/box/errcode.h
@@ -278,7 +278,7 @@ struct errcode_record {
         /*223 */_(ER_INTERFERING_PROMOTE,       "Instance with replica 
id %u was promoted first") \
         /*224 */_(ER_RAFT_DISABLED,             "Elections were turned 
off while running box.ctl.promote()")\
         /*225 */_(ER_TXN_ROLLBACK,              "Transaction was rolled 
back") \
-       /*226 */_(ER_SYNCHRO_QUEUE_UNCLAIMED,   "The synchronous 
transaction queue doesn't belong to any instance")\
+       /*226 */_(ER_SYNC_QUEUE_UNCLAIMED,      "The synchronous 
transaction queue doesn't belong to any instance")\

  /*
   * !IMPORTANT! Please follow instructions at start of the file
diff --git a/src/box/txn_limbo.c b/src/box/txn_limbo.c
index b6e844f32..1dc093400 100644
--- a/src/box/txn_limbo.c
+++ b/src/box/txn_limbo.c
@@ -97,7 +97,7 @@ txn_limbo_append(struct txn_limbo *limbo, uint32_t id, 
struct txn *txn)
         if (id == 0)
                 id = instance_id;
         if  (limbo->owner_id == REPLICA_ID_NIL) {
-               diag_set(ClientError, ER_SYNCHRO_QUEUE_UNCLAIMED);
+               diag_set(ClientError, ER_SYNC_QUEUE_UNCLAIMED);
                 return NULL;
         } else if (limbo->owner_id != id) {
                 diag_set(ClientError, ER_UNCOMMITTED_FOREIGN_SYNC_TXNS,
diff --git a/test/box/error.result b/test/box/error.result
index 574521a14..dfe593dc2 100644
--- a/test/box/error.result
+++ b/test/box/error.result
@@ -444,7 +444,7 @@ t;
   |   223: box.error.INTERFERING_PROMOTE
   |   224: box.error.RAFT_DISABLED
   |   225: box.error.TXN_ROLLBACK
- |   226: box.error.LIMBO_UNCLAIMED
+ |   226: box.error.SYNC_QUEUE_UNCLAIMED
   | ...

  test_run:cmd("setopt delimiter ''");
diff --git a/test/replication/suite.cfg b/test/replication/suite.cfg
index 4fc6643e4..c0854f7fa 100644
--- a/test/replication/suite.cfg
+++ b/test/replication/suite.cfg
@@ -41,7 +41,6 @@
      "gh-4739-vclock-assert.test.lua": {},
      "gh-4730-applier-rollback.test.lua": {},
      "gh-4928-tx-boundaries.test.lua": {},
-    "gh-5440-qsync-ro.test.lua": {},
      "gh-5435-qsync-clear-synchro-queue-commit-all.test.lua": {},
      "gh-5536-wal-limit.test.lua": {},
      "gh-5566-final-join-synchro.test.lua": {},

========================

-- 
Serge Petrenko



More information about the Tarantool-patches mailing list