Description
Tarantool version:
Tarantool 2.6.0-93-gace41229f
Target: Linux-x86_64-RelWithDebInfo
Build options: cmake . -DCMAKE_INSTALL_PREFIX=/builds/kGZwxbcs/0/tarantool/tarantool/static-build/tarantool-prefix -DENABLE_BACKTRACE=TRUE
Compiler: /usr/bin/cc /usr/bin/c++
C_FLAGS: -static-libstdc++ -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c11 -Wall -Wextra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-gnu-alignof-expression -fno-gnu89-inline -Wno-cast-function-type -Werror
CXX_FLAGS: -static-libstdc++ -fexceptions -funwind-tables -fno-omit-frame-pointer -fno-stack-protector -fno-common -fopenmp -msse2 -std=c++11 -Wall -Wextra -Wno-strict-aliasing -Wno-char-subscripts -Wno-format-truncation -Wno-invalid-offsetof -Wno-gnu-alignof-expression -Wno-cast-function-type -Werror
OS version:
Linux (CentOS 7)
OSX 15
Bug description:
Issues:
1a. https://gitlab.com/tarantool/tarantool/-/jobs/746998490#L4675
results file checksum: 302cbcfde971bc8cb65b059165509d20
[242] --- replication/transaction.result Sat Sep 19 04:07:40 2020
[242] +++ replication/transaction.reject Sun Sep 20 01:00:05 2020
[242] @@ -189,6 +189,7 @@
[242] ...
[242] box.begin() s:insert({8, 'm'}) s:insert({9, 'm'}) box.commit()
[242] ---
[242] +- error: Duplicate key exists in unique index 'pk' in space 'test'
[242] ...
[242] test_run:cmd("switch replica")
[242] ---
[242]
1b. https://gitlab.com/tarantool/tarantool/-/jobs/746707311#L4262
results file checksum: a488d1f66d4d0325c28746db77cf5e17
[036] --- replication/transaction.result Sat Sep 19 07:07:22 2020
[036] +++ replication/transaction.reject Sat Sep 19 14:39:47 2020
[036] @@ -53,10 +53,12 @@
[036] -- create a two-row transaction with conflicting second
[036] box.begin() s:insert({3, 'm'}) s:insert({4, 'm'}) box.commit()
[036] ---
[036] +- error: Duplicate key exists in unique index 'pk' in space 'test'
[036] ...
[036] -- create a third transaction
[036] box.begin() s:insert({5, 'm'}) s:insert({6, 'm'}) s:insert({7, 'm'}) box.commit()
[036] ---
[036] +- error: 'Operation is not permitted when there is an active transaction '
[036] ...
[036] test_run:cmd("switch replica")
[036] ---
[036] @@ -76,11 +78,11 @@
[036] -- check replication status
[036] box.info.replication[1].upstream.status
[036] ---
[036] -- stopped
[036] +- follow
[036] ...
[036] box.info.replication[1].upstream.message
[036] ---
[036] -- Duplicate key exists in unique index 'pk' in space 'test'
[036] +- null
[036] ...
[036] -- set conflict to third transaction
[036] _ = box.space.test:delete({4})
[036] @@ -108,24 +110,22 @@
[036] ...
[036] v1[1] + 2 == box.info.vclock[1]
[036] ---
[036] -- true
[036] -...
[036] -box.space.test:select()
[036] ----
[036] -- - [1, 'm']
[036] - - [2, 'm']
[036] - - [3, 'm']
[036] - - [4, 'm']
[036] +- false
[036] +...
[036] +box.space.test:select()
[036] +---
[036] +- - [1, 'm']
[036] + - [2, 'm']
[036] - [6, 'r']
[036] ...
[036] -- check replication status
[036] box.info.replication[1].upstream.status
[036] ---
[036] -- stopped
[036] +- follow
[036] ...
[036] box.info.replication[1].upstream.message
[036] ---
[036] -- Duplicate key exists in unique index 'pk' in space 'test'
[036] +- null
[036] ...
[036] -- check restart does not help
[036] test_run:cmd("switch default")
[036] @@ -144,8 +144,6 @@
[036] ---
[036] - - [1, 'm']
[036] - [2, 'm']
[036] - - [3, 'm']
[036] - - [4, 'm']
[036] - [6, 'r']
[036] ...
[036] -- set skip conflict rows and check that non-conflicting were applied
[036] @@ -163,11 +161,7 @@
[036] ---
[036] - - [1, 'm']
[036] - [2, 'm']
[036] - - [3, 'm']
[036] - - [4, 'm']
[036] - - [5, 'm']
[036] - - [6, 'r']
[036] - - [7, 'm']
[036] + - [6, 'r']
[036] ...
[036] box.info.replication[1].upstream.status
[036] ---
[036] @@ -189,6 +183,7 @@
[036] ...
[036] box.begin() s:insert({8, 'm'}) s:insert({9, 'm'}) box.commit()
[036] ---
[036] +- error: Duplicate key exists in unique index 'pk' in space 'test'
[036] ...
[036] test_run:cmd("switch replica")
[036] ---
[036] @@ -199,11 +194,7 @@
[036] ---
[036] - - [1, 'm']
[036] - [2, 'm']
[036] - - [3, 'm']
[036] - - [4, 'm']
[036] - - [5, 'm']
[036] - - [6, 'r']
[036] - - [7, 'm']
[036] + - [6, 'r']
[036] - [8, 'r']
[036] - [9, 'r']
[036] ...
[036] @@ -224,11 +215,7 @@
[036] ---
[036] - - [1, 'm']
[036] - [2, 'm']
[036] - - [3, 'm']
[036] - - [4, 'm']
[036] - - [5, 'm']
[036] - - [6, 'r']
[036] - - [7, 'm']
[036] + - [6, 'r']
[036] - [8, 'r']
[036] - [9, 'r']
[036] ...
[036]
[112] --- replication/skip_conflict_row.result Fri Sep 18 12:44:13 2020
[112] +++ replication/skip_conflict_row.reject Sat Sep 19 11:42:45 2020
[112] @@ -41,7 +41,7 @@
[112] ...
[112] space:insert{1, 1}
[112] ---
[112] -- [1, 1]
[112] +- error: Duplicate key exists in unique index 'primary' in space 'test'
[112] ...
[112] space:insert{2}
[112] ---
[112] @@ -104,7 +104,7 @@
[112] ...
[112] box.space.test:insert{3, 3}
[112] ---
[112] -- [3, 3]
[112] +- error: Duplicate key exists in unique index 'primary' in space 'test'
[112] ...
[112] box.space.test:insert{4}
[112] ---
[112] @@ -117,11 +117,23 @@
[112] -- lsn is not promoted
[112] lsn1 == box.info.vclock[1]
[112] ---
[112] -- true
[112] +- false
[112] ...
[112] test_run:wait_upstream(1, {status = 'stopped', message_re = "Duplicate key exists in unique index 'primary' in space 'test'"})
[112] ---
[112] -- true
[112] +- false
[112] +- id: 1
[112] + uuid: 55c558fd-fa36-4f4e-bada-162cf2e4b6e6
[112] + lsn: 43
[112] + upstream:
[112] + status: follow
[112] + idle: 0.099210985004902
[112] + peer: unix/:/builds/kGZwxbcs/0/tarantool/tarantool/test/var/112_replication/master.socket-iproto
[112] + lag: 6.1750411987305e-05
[112] + downstream:
[112] + status: follow
[112] + idle: 0.018791247159243
[112] + vclock: {2: 2, 1: 43}
[112] ...
[112] test_run:cmd("switch default")
[112] ---
[112] @@ -134,7 +146,19 @@
[112] -- applier is not in follow state
[112] test_run:wait_upstream(1, {status = 'stopped', message_re = "Duplicate key exists in unique index 'primary' in space 'test'"})
[112] ---
[112] -- true
[112] +- false
[112] +- id: 1
[112] + uuid: 55c558fd-fa36-4f4e-bada-162cf2e4b6e6
[112] + lsn: 43
[112] + upstream:
[112] + status: follow
[112] + idle: 0.0093947425484657
[112] + peer: unix/:/builds/kGZwxbcs/0/tarantool/tarantool/test/var/112_replication/master.socket-iproto
[112] + lag: 4.1961669921875e-05
[112] + downstream:
[112] + status: follow
[112] + idle: 0.080363821238279
[112] + vclock: {2: 2, 1: 43}
[112] ...
[112] --
[112] -- tarantool/tarantool#3977: check that NOP is written instead of conflicting row.
[112] @@ -185,6 +209,7 @@
[112] ...
[112] for i = 1, 10 do box.space.test:insert({i, 'm'}) end
[112] ---
[112] +- error: Duplicate key exists in unique index 'primary' in space 'test'
[112] ...
[112] test_run:cmd("switch replica")
[112] ---
[112] @@ -193,7 +218,7 @@
[112] -- lsn should be incremented
[112] test_run:wait_cond(function() return v1 == box.info.vclock[1] - 10 end)
[112] ---
[112] -- true
[112] +- false
[112] ...
[112] -- and state is follow
[112] test_run:wait_upstream(1, {status = 'follow'})
[112]
Steps to reproduce:
Optional (but very desirable):
- coredump
- backtrace
- netstat