Skip to content

Single instance testing isn't working #92

Closed
@Totktonada

Description

@Totktonada

What I see on the 'jepsen-single-instance' job in tarantool (postprocessed logs):

2021-10-27T09:05:54.9580285Z 
:workload :bank-lua,
clojure.lang.ExceptionInfo: throw+: {:type :empty-grudge, :grudge {"89.208.228.127" #{}}, :node "89.208.228.127"}
clojure.lang.ExceptionInfo: throw+: {:type :empty-grudge, :grudge {"89.208.228.127" #{}}, :node "89.208.228.127"}
Everything looks good! ヽ(‘ー`)ノ 
2021-10-27T09:18:01.2961242Z 

2021-10-27T09:18:01.4252200Z 
:workload :bank-multitable-lua,
clojure.lang.ExceptionInfo: throw+: {:type :empty-grudge, :grudge {"89.208.228.127" #{}}, :node "89.208.228.127"}
clojure.lang.ExceptionInfo: throw+: {:type :empty-grudge, :grudge {"89.208.228.127" #{}}, :node "89.208.228.127"} 
Everything looks good! ヽ(‘ー`)ノ 
2021-10-27T09:20:11.8104307Z 

2021-10-27T09:20:11.9301155Z 
:workload :set,
java.sql.SQLException: Failed to execute SQL: INSERT INTO sets (value) VALUES (?), params: [0]
Caused by: org.tarantool.TarantoolException: The synchronous transaction queue doesn't belong to any instance
<..skipped repeated messages..>
clojure.lang.ExceptionInfo: throw+: {:type :empty-grudge, :grudge {"89.208.228.127" #{}}, :node "89.208.228.127"}
<..skipped repeated messages..>
Analysis invalid! (ノಥ益ಥ)ノ ┻━┻
2021-10-27T09:22:47.8019469Z 

2021-10-27T09:22:48.7684703Z 
:workload :register,
java.sql.SQLException: Failed to execute SQL: SELECT _UPSERT(0, 2, 'REGISTER'), params: []
Caused by: org.tarantool.TarantoolException: The synchronous transaction queue doesn't belong to any instance
<..skipped repeated messages..> 
Analysis invalid! (ノಥ益ಥ)ノ ┻━┻ 
2021-10-27T09:26:21.5315705Z

Full logs: logs.txt.

My findings:

  • The grudge exception fail a nemesis process and is considered as a warning. Not insterested for us here.
  • 'bank-lua' and 'bank-multitable-lua' work, 'set' and 'register' fails.
  • The failed tests uses synchronous spaces.
  • After some tarantool's commit, we should call box.ctl.promote() on a new leader, when RAFT is not used for leader election. It seems, even when we have just one instance. See Implement memtx transaction isolation levels for Vinyl tarantool#5522 (comment) (from this comment and below).

It seems, we should add box.ctl.promote() after box.cfg() for single instance configuration.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions