New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Amount of money on a bank account becomes negative in a Jepsen test #6099
Comments
in
Where MVCC is set to false. Hence in the mentioned test code
there's no guarantee that the data will be the same for the I believe it's a mistake in the test configuration. Please, double check it passess with MVCC turned on. |
everything fine without nemesis and enabled mvcc:
let's add nemeses: Jepsen reports that sometimes total is wrong (not equal to 100):
Full logs: Tarantool version:
|
In my opinion, we should reduce it to some bash+lua test case. Moved to the Ecosystem Team backlog. |
Moved out from the Ecosystem Team backlog to highlight on the triage meeting. |
The mentioned reduction is possible after enabling of Jepsen implementation in Lua, that @ligurio started as pet project. |
Bug description
A clear and concise description of what the bug is.
Tarantool 2.8.1-20-g6e1d4a463
Target: Linux-x86_64-RelWithDebInfo
Build options: cmake . -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_BACKTRACE=ON
Compiler: /usr/bin/cc /usr/lib/ccache/g++
C_FLAGS:-g -O2 -fdebug-prefix-map=/build/tarantool-2.8.1.20=. -specs=/usr/share/dpkg/no-pie-compile.specs -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -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
CXX_FLAGS:-g -O2 -fdebug-prefix-map=/build/tarantool-2.8.1.20=. -specs=/usr/share/dpkg/no-pie-compile.specs -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -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
Steps to reproduce
lein run test --workload bank-multitable-lua --nodes-file nodes --username ubuntu --version 2.8 --leave-db-running --time-limit 200 --nemesis standard
Nemesis "standard" is a set of nemeses: kill, pause, partition and clock. All of them applied randomly during test.
Actual behavior
Amount of money must be always positive, withdraw cannot happen when amount of money is negative, see Lua code that implements SQL comment to transfer money between accounts https://github.com/tarantool/jepsen.tarantool/blob/master/resources/tarantool/jepsen.lua#L133-L155
Expected behavior
Sum of amounts money of all accounts is equal to 100, amount money on all accounts is positive.
Logs: logs.zip
Source code: https://github.com/tarantool/jepsen.tarantool/blob/master/src/tarantool/bank.clj#L74-L139
Version of test: tarantool/jepsen.tarantool@6165e6e
The text was updated successfully, but these errors were encountered: