- Apr 14, 2023
-
-
Gleb Kashkin authored
For an unknown reason default fio.open() mode used to be set as 0777 & umask that basically equals 18, meaning no read/write/execute rights for anyone. Now the default is 0666 before umask, meaning read and write access. Closes #7981 NO_DOC=bugfix
-
- Apr 13, 2023
-
-
Yaroslav Lobankov authored
Provide the `report-job-status` action with the `job-name` param to get the direct link to the failed job in the failure message. NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci
-
Yaroslav Lobankov authored
Call the `checkout` action with the `path` param to avoid the following error: Error: File was unable to be removed Error: EACCES: permission denied, unlink '/home/runner/work/tarantool/tarantool/build-out/csv_fuzzer' NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci
-
Yaroslav Lobankov authored
NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci
-
Mikhail Elhimov authored
Closes #8523 NO_DOC=gdb extension NO_TEST=gdb extension NO_CHANGELOG=gdb extension
-
- Apr 12, 2023
-
-
Mergen Imeev authored
This patch introduces the SHOW CREATE TABLE statement. This statement can be used to obtain a description of a space in the form of a corresponding CREATE TABLE and CREATE INDEX statements. Closes #8098 @TarantoolBot document Title: SHOW CREATE TABLE statement Statement can be used to obtain a description of a space in the form of a corresponding `CREATE TABLE` and `CREATE INDEX` statements. Result will be in form of set of statements and set of found errors. If errors were not detected, set of the statements should be enough to completely serialize space definition. There is two types of `SHOW CREATE TABLE` statement: 1) Get a description of a single space: ``` SHOW CREATE TABLE table_name; ``` This statement can be used to obtain a description of a space in the form of the corresponding `CREATE TABLE` and `CREATE INDEX` statements. The result will be in the form of a set of statements and a set of found errors. If no errors are found, the set of statements should be sufficient to fully serialize the space definition. Otherwise, it will certainly not be a complete space definition, and a `CREATE TABLE` statement is generally not guaranteed to be syntactically correct. 2) Get descriptions of all available non-system spaces: ``` SHOW CREATE TABLE; ``` This statement returns descriptions for each available non-system space in the form described above.
-
Mergen Imeev authored
In some cases we need to convert a string to upper case (e.g., when normalizing a lower-case field name for SQL): add helper functions that do this in-place or by creating a copy of the original string. Needed for #8098 NO_DOC=internal NO_CHANGELOG=internal
-
Yaroslav Lobankov authored
We have the limited hardware resources with macOS 12, and full testing is time-consuming. So let's check only the release build on the x86_64 platform. NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci
-
Yaroslav Lobankov authored
All tests were updated according to tarantool/luatest@930b63b. So this should resolve the problem with Unix socket collisions that we tried to fix, for example, in tarantool/tarantool@7ac2685. NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
-
Yaroslav Lobankov authored
Bump test-run to new version with the following improvements: - Properly ignore Unix sockets on artifact saving [1] - Bump luatest to 0.5.7-34-g930b63b [2] [1] tarantool/test-run@3afaccc [2] tarantool/test-run@02c4828 NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
-
Yaroslav Lobankov authored
This reverts commit 7ac2685b. NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
-
Pavel Semyonov authored
NO_CHANGELOG=changelog NO_DOC=changelog NO_TEST=changelog
-
- Apr 11, 2023
-
-
Timur Safin authored
Refactor the way how we run various debugger scenarios, getting rid of external static file, and producing debuggee scripts on the fly. The idea is to have everything in the single source: both source script to be used for debugging, and corresponding debugger commands. NO_DOC=internal NO_CHANGELOG=internal
-
Timur Safin authored
It's frequently needed to see interaction of a luatest script and its chield launched via popen. Now we display extra debugging information received from children pipes directly to the parent screen. It's hidden by default by luatest (if everything goes well), but could be displayed with `luatest -c` option. ``` luatest -c -v app-luatest/console_debugger_session_test.lua ``` NO_DOC=internal NO_CHANGELOG=internal
-
- Apr 10, 2023
-
-
Georgy Moiseev authored
NO_DOC=Test update NO_CHANGELOG=Test update
-
Georgy Moiseev authored
Rework "running tests with built-in package" assert since now checks is a callable table package with subpackages instead of a single function. NO_DOC=No tagged version since checks initial embedding NO_CHANGELOG=No tagged version since checks initial embedding
-
Mergen Imeev authored
This patch replaces the type for some int and uint32_t values with size_t to avoid problems with integer overflow. Closes tarantool/security#119 NO_DOC=bugfix
-
- Apr 07, 2023
-
-
Yaroslav Lobankov authored
Skip unstable tests of `replication-luatest/linearizable_test.lua` due to tarantool-qa#277. NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
-
Yaroslav Lobankov authored
The fixed tests often failed with fail | 2023-03-01 15:54:30.550 [3724975] main/103/server_instance.lua F> can't initialize storage: unlink, called on fd 63, aka unix/:(socket), peer of unix/:(socket): Address already in use We fixed a similar issue in commit 3d3e9dea ("test: fix flaky box-luatest/gh_7917_log_row_on_recovery_error_test") by using unique instance names. Let's do the same here. NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
-
Oleg Chaplashkin authored
Server API from the luatest has been changed: `server:clean()` method has been removed. Use `server:drop()` instead. Follows up tarantool/luatest#296 NO_DOC=test fix NO_TEST=test fix NO_CHANGELOG=test fix
-
Oleg Chaplashkin authored
Bump test-run to new version with the following improvements: - Bump luatest to 0.5.7-33-g8523e5c [1] [1] tarantool/test-run@7db594d Part of tarantool/luatest#296 NO_DOC=testing stuff NO_TEST=testing stuff NO_CHANGELOG=testing stuff
-
Mergen Imeev authored
Tuples that have been inserted into system spaces after the _space definition has been inserted into _space have the same format as the space into which they were inserted. However, previously inserted tuples have an incomplete tuple format with parts missing. One piece that is missing information is the JSON token, which is used to determine the number of fields. The tarantoolsqlIdxKeyCompare() function contains the correct checks for the case when the number of fields from the format is equal to or less than the fieldno field, but uses tuple_format_field() before this check, resulting in an assertion. This patch forces tarantoolsqlIdxKeyCompare() to call tuple_format_field() only after checking that fieldno is less than field_count. Closes #8418 NO_DOC=Bugfix in debug.
-
- Apr 06, 2023
-
-
Vladimir Davydov authored
This may result in invalid statistics if there's more than 4 GB allocated for index extents. Fixes commit a75f4b7e ("memtx: introduce read view statistics"). Follow-up #8501 Coverity report 1537026, 1537027. NO_DOC=bug fix NO_CHANGELOG=unreleased NO_TEST=complicated; checked by coverity
-
Vladimir Davydov authored
Allow to register tweaks for variables of type double. Such tweak can be set to any integer or double value. Follow-up #7883 NO_DOC=internal NO_TEST=internal NO_CHANGELOG=internal
-
- Apr 05, 2023
-
-
Kirill Yukhin authored
To make changelog preparation less stressful let's pass each and every change to changelogs/ directly through the doc team. NO_CHANGELOG=no code changes NO_TEST=no code changes NO_DOC=no code changes
-
Kseniia Antonova authored
Fix grammar, punctuation, and wording NO_CHANGELOG=changelog NO_DOC=changelog NO_TEST=changelog
-
Yaroslav Lobankov authored
* Add an extra step that should be considered as a workaround for the runner agent (ChristopherHX/github-act-runner) that is used on FreeBSD machines. Without it, env.ARTIFACT_EXISTS will be undefined for some reason. * In the s3-upload-artifact action change `if: env.ARTIFACT_EXISTS` to `if: env.ARTIFACT_EXISTS == 'true'` to be compatible with the FreeBSD runner agent. Follows up tarantool/multivac#116 NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci
-
Serge Petrenko authored
Add a new possible value for `bootstrap_strategy` configuration option - "config". When bootstrap_strategy is "config", the user may use `bootstrap_leader` configuration option to specify the URI or UUID of the desired bootstrap leader. Closes #7999 @TarantoolBot document Title: new configuration option - `bootstrap_leader`. Configuration receives a new parameter - `bootstrap_leader`. The parameter specifies the desired node to bootstrap from. The parameter is valid only when another option - `bootstrap_strategy` - is set to `'config'`. The user may pass either the bootstrap leader's URI or its UUID string. If bootstrap leader is passed as a UUID, the node will bootstrap from the peer whose UUID matches the given one. If bootstrap leader is passed as a URI, the URI must contain the same host:port pair (or unix socket path) used for this node in `box.cfg.replication`. In this case the node will bootstrap from the remote peer listed in the corresponding replication entry. For example, this call will return an error: ```lua box.cfg{ bootstrap_strategy = 'config', bootstrap_leader = 'localhost:3301', replication = {'127.0.0.1:3301'}, } ``` But this call will succeed: ```lua box.cfg{ bootstrap_strategy = 'config', bootstrap_leader = 127.0.0.1:3301', replication = {'127.0.0.1:3301'}, } ``` In the example above, setting either or both of `bootstrap_leader` and `replication` to `"user:password@127.0.0.1:3301` will work just fine, i.e. only the bootstrap leader's host and port are matched against replication entries. If `bootstrap_leader` points at the instance being configured, the same URI entry for the instance must still be present in `replication` configuration parameter, like this: ```lua box.cfg{ listen = 'localhost:1234', bootstrap_leader = 'localhost:1234', replication = {'localhost:1234', ...}, } ``` The only exception to this is setting `bootstrap_leader` to the same UUID as instance_uuid, like this: ```lua box.cfg{ listen = 'something', bootstrap_leader = '11111111-1111-1111-1111-111111111111', instance_uuid = '11111111-1111-1111-1111-111111111111', ``` In this case the node will bootstrap the cluster on its own.
-
Serge Petrenko authored
The test will include test cases for other possible bootstrap strategies, so rename it properly. Doing this in a separate commit helps to minimize the diff. In-scope-of #7999 NO_DOC=test rename NO_TEST=test rename NO_CHANGELOG=test rename
-
Serge Petrenko authored
replicaset_connect() sleeps in a loop while waiting for the connections to be established and checks a bunch of conditions in between the loop cycles to check if it can proceed (with either a success or a failure). The conditions are already quite complicated and multiple, but it's going to get worse with the addition of bootstrap_strategy "config" and "supervised": during bootstrap replicaset_connect() will proceed as soon as the configured bootstrap leader is connected. Factor all these checks out to a helper function for simplicity. Part-of #7999 NO_DOC=refactoring NO_TEST=refactoring NO_CHANGELOG=refactoring
-
Serge Petrenko authored
Add uri_is_nil() and uri_addr_is_equal() helpers. In-scope-of #7999 NO_DOC=not user-visible NO_TEST=tested implicitly in the next commit NO_CHANGELOG=not user-visible
-
Serge Petrenko authored
Some time ago we decided that new checkers added to box_check_config() shouldn't throw. Instead they return -1 and box_check_config() raises an error. box_check_uuid() will be used in one of the upcoming checkers, so make it return -1 and set diag in case of error. Since it's used by box_check_instance_uuid() and box_check_replicaset_uuid(), fix them as well. In-scope-of #7999 NO_DOC=refactoring NO_TEST=refactoring NO_CHANGELOG=refactoring
-
Serge Petrenko authored
Checking a single uri will be needed in upcoming commits. In-scope-of #7999 NO_DOC=refactoring NO_TEST=refactoring NO_CHANGELOG=refactoring
-
- Apr 03, 2023
-
-
Sergey Bronnikov authored
We manage using sanitizers with CMake flags: ENABLE_ASAN and ENABLE_UB_SANITIZER. sql_fuzzer enables Address Sanitizer by passing -fsanitize=address directly to CFLAGS. It works fine on OSS Fuzz, but breaks building fuzzers for Sydr [1], because Sydr requires building with disabled sanitizers, see documentation [2]. 1. https://github.com/ispras/oss-sydr-fuzz/pull/164 2. https://sydr-fuzz.github.io/docs/#%D0%BE%D0%B1%D0%B5%D1%80%D1%82%D0%BA%D0%B0-sydr Fixes #8529 NO_CHANGELOG=<fuzzing testing> NO_DOC=<fuzzing testing> NO_TEST=<fuzzing testing>
-
Yaroslav Lobankov authored
NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci
-
Anna Balaeva authored
This patch adds the step to all workflows with test-run tests to save test artifacts to S3 for providing artifact link from Multivac Grafana dashboard. Resolves tarantool/multivac#116 NO_DOC=CI NO_TEST=CI NO_CHANGELOG=CI Co-authored-by:
Yaroslav Lobankov <y.lobankov@tarantool.org>
-
Anna Balaeva authored
This patch adds a local GitHub action to save test artifacts to S3. Print a warning if the provided artifact path doesn't exist. Part of tarantool/multivac#116 NO_DOC=CI NO_TEST=CI NO_CHANGELOG=CI Co-authored-by:
Yaroslav Lobankov <y.lobankov@tarantool.org>
-
Rimma Tolkacheva authored
Patch adds a grammar-based SQL fuzzer that based on libprotobuf-mutator [1] and libFuzzer [2]. Tarantool's SQL grammar [3][4] is described in Protobuf format in a file sql_query.proto, fuzzing engine generates SQL query in Protobuf format and then serializes it to a string (std::string) in sql_query_proto_to_string.* files. Resulted string is passed to SQL engine in Tarantool. NOTE: Current version of SQL grammar and serializers implements only `CREATE TABLE` and `SELECT` queries with all supported options. 1. https://github.com/google/libprotobuf-mutator 2. https://llvm.org/docs/LibFuzzer.html 3. https://www.tarantool.io/en/doc/latest/reference/reference_sql/sql_statements_and_clauses/ 4. https://www.tarantool.io/en/doc/latest/reference/reference_sql/sql_user_guide/ Part of #4826 NO_DOC=<fuzzing testing of SQL>
-
Sergey Bronnikov authored
Seed corpus was generated by fuzzing test itself. Needed for #4826 NO_CHANGELOG=<fuzzing testing of SQL> NO_DOC=<fuzzing testing of SQL> NO_TEST=<fuzzing testing of SQL>
-
Sergey Bronnikov authored
SQL queries generated by fuzzing test could trigger a code that want access to a space cache. Usually this cause an abort, because fuzzing test doesn't perform a complete initialization of tarantool instance. To avoid this we isolated problem parts of code with macro FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. More appropriate solution will be implemented later. With introduced macro FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION we change behaviour of SQL engine and this breaks SQL regression tests. Therefore FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is disabled in test-release-asan. Needed for #4826 NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal
-