- Apr 05, 2023
-
-
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
-
Sergey Bronnikov authored
SQL fuzzing test requires an entrypoint for SQL engine and the most suitable function for such purpose is sql_stmt_compile(). However, this function is not in a public API, and we don't want to expose it as public function. As a solution function sql_fuzz() is introduced, it is defined under a macro FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. Needed for #4826 NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal
-
Sergey Bronnikov authored
Patch introduce a macro FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. It is a common build macro recommended in libFuzzer's documentation [1]. 1. https://llvm.org/docs/LibFuzzer.html#fuzzer-friendly-build-mode Needed for #4826 NO_CHANGELOG=build NO_DOC=build NO_TEST=build
-
Sergey Bronnikov authored
Follows-up #4823 NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal
-
- Mar 31, 2023
-
-
Sergey Bronnikov authored
Function `datetime_strptime` decodes string with datetime according to specified format, it accepts a datetime struct, buffer with datetime and string with format in arguments. Fuzzing test used static string "iso8601" as a format and it blocked fuzzing test to cover functions used by datetime_strptime under the hood. Fuzz introspector shows that code coveraged by a test is quite low. Patch updates the test to make it more effective: buffer with datetime and format string are generated using FDP (Fuzzing Data Provider). Test file extension was changed to .cc, because FuzzingDataProvider is used and we need building it by C++ compiler. Function `tnt_strptime` uses assert, that triggered by fuzzing tests. Therefore it was replaced with to if..then. 1. https://storage.googleapis.com/oss-fuzz-introspector/tarantool/ Fixes #8490 NO_CHANGELOG=fuzzing test NO_DOC=fuzzing test NO_TEST=fuzzing test
-
Timur Safin authored
Fixes #8502 Needed for #8490 NO_DOC=bugfix NO_TEST=covered by fuzzing test
-
Mikhail Elhimov authored
NO_DOC=gdb extension NO_TEST=gdb extension NO_CHANGELOG=gdb extension
-
Mikhail Elhimov authored
Closes #8317 NO_DOC=gdb extension NO_TEST=gdb extension NO_CHANGELOG=gdb extension
-
Mikhail Elhimov authored
Rearrange code to simplify support of multiple types of lists NO_DOC=gdb extension NO_TEST=gdb extension NO_CHANGELOG=gdb extension
-
Mikhail Elhimov authored
Follow-up commit 4eb0a0dd ("gdb: check if address refers to symbol with 'info symbol' command"). NO_DOC=gdb extension NO_TEST=gdb extension NO_CHANGELOG=gdb extension
-
Andrey Saranchin authored
Original test was flaky and passed even if the problem was not fixed in Release build and more rarely in Debug. Let's improve this test to be more reliable. Closes tarantool/tarantool-qa#203 NO_CHANGELOG=test NO_DOC=test
-
Nikolay Shirokovskiy authored
Currently test can fail if in developer environment .inputrc is custom. Follow-up #4317 NO_TEST=test fix NO_DOC=test fix NO_CHANGELOG=test fix
-
- Mar 30, 2023
-
-
Nikolay Shirokovskiy authored
Remove parts that used before flightrec reader API is added. - fix test_max_record_size case of prbuf unit test to use reader from file - drop prbuf reader from buffer in memory - drop prbuf Lua FFI interface Follow up: https://github.com/tarantool/tarantool-ee/issues/319 NO_DOC=internal NO_CHANGELOG=internal
-
Nikolay Shirokovskiy authored
Found by EE CI in release asan in flightrec test which uses prbuf. Change prbuf test so that the issue is tested in CE where the prbuf code resides. Follow-up https://github.com/tarantool/tarantool-ee/issues/319 NO_DOC=bug fix NO_CHANGELOG=unreleased bug fix
-
Vladimir Davydov authored
Closes #8501 @TarantoolBot document Title: Document memtx read view statistics New entries have been added to `box.stat.memtx()` output: ``` tarantool> box.stat.memtx().data --- - garbage: 0 total: 24986 read_view: 0 ... tarantool> box.stat.memtx().index --- - read_view: 0 total: 933888 ... ``` `data` shows how much memory is allocated for memtx tuples: - `data.total` - total amount of memory allocated for data tuples. This includes `data.read_view` and `data.garbage` plus tuples that are actually stored in memtx spaces. - `data.read_view` - memory held for read views. - `data.garbage` - memory that is unused and scheduled to be freed (freed lazily on memory allocation). `index` shows how much memory is allocated for memtx index extents: - `index.total` - total amount of memory allocated for indexing data. This includes `index.read_view` plus memory used for indexing tuples that are actually stored in memtx spaces. - `index.read_view` - memory held for read views. All numbers are given in bytes. `data.read_view` and `index.read_view` include memory allocated both for system read views (snapshot, replication) and user read views (EE-only). They should be non-zero only if there are open read views. To list all open read views, use `box.read_view.list()`.
-
- Mar 29, 2023
-
-
Andrey Saranchin authored
The commit adds new read view methods needed for pagination. Also, the check that tuple is not nil is dropped for the sake of consistency - we will omit this check in read view because it is incomplete anyway and the error message looks fine without it. Part of tarantool/tarantool-ee#285 NO_CHANGELOG=in EE NO_DOC=in EE
-
Andrey Saranchin authored
Since we are going to implement pagination for read_view, we need to factor out iterator_position logics to avoid duplication. Part of tarantool/tarantool-ee#285 NO_TEST=refactoring NO_CHANGELOG=refactoring NO_DOC=refactoring
-
Andrey Saranchin authored
Currently, we check that tuple passed as position fits space format. However, for pagination purposes, it's enough to validate only parts of tuple that are used in cmp_def. And, it allows not to use space format - we will need it in read view. So the patch replaces tuple validation with validation of its cmp_def parts only. Closes #8511 Part of tarantool/tarantool-ee#285 NO_DOC=bugfix
-
Andrey Saranchin authored
We are going to validate only key parts of passed tuple in pagination. That is why the patch introduces helper that allows to do it with raw version of tuple. Part of #8511 Part of tarantool/tarantool-ee#285 NO_CHANGELOG=internal NO_DOC=internal
-
Nikolay Shirokovskiy authored
This includes: - Call flightrec Lua C initialization. - Stop exporting in public API flightrec configuration function. It is intended for private use. - Export iproto_key_translation for representing requests/response records. Part of https://github.com/tarantool/tarantool-ee/issues/319 NO_TEST=preparation for EE changes NO_CHANGELOG=preparation for EE changes NO_DOC=preparation for EE changes
-
Nikolay Shirokovskiy authored
It is intended to be used in EE. As we introduce this function it is a good moment to drop level_to_char and level_to_string. They have too little functionality. Part of https://github.com/tarantool/tarantool-ee/issues/319 NO_CHANGELOG=internal NO_DOC=internal
-
Nikolay Shirokovskiy authored
There is an issue in prbuf_prepare on branch when we need to wrap and allocate space for the record starting from the beginning of the data area. In the process we set end offset to 0. This means empty buffer. So if application is crashed after such prepare but before commit buffer will have no records. This is a bug. But actually we don't have to reset end to 0 unless we preparing for very big record which will occupy almost all buffer. In this case there is really no records left after preparation. Otherwise if we don't change end offset buffer will be valid and records will be there. Part of https://github.com/tarantool/tarantool-ee/issues/319 NO_DOC=bugfix NO_CHANGELOG=minor
-
Nikolay Shirokovskiy authored
New prbuf reader API is intended to be used in flight recorder reader API implementation. Currently prbuf has API to read records memory buffer. It is used for testing purposes only. We aim to drop this reader eventually. This patch in particular switch prbuf unit test to use new reader API. This patch also cleanups prbuf unit test besides merely adding tests for new and missing cases. This includes: - Using structured test plan. Now test plan is not some number which updated after running the test. With structure it can be written down deliberately. - Buffer/payload sizes in main test are tuned to test all possible unused space at the end of the buffer cases. - Check actual number of records in buffer. Otherwise we may not notice having no records at all for example. - Factor out common parts to helper functions/tests. - Print actual object in tests where it may help tests debugging. Part of https://github.com/tarantool/tarantool-ee/issues/319 NO_DOC=internal NO_CHANGELOG=internal
-
Nikolay Shirokovskiy authored
Part of https://github.com/tarantool/tarantool-ee/issues/319 NO_CHANGELOG=internal NO_DOC=internal
-
Gleb Kashkin authored
There used to be a rare error when failed to connect via tarantoolctl to listening cartridge console. It was caused by unclear console.local_print() contract. Starting from gh-7031 fix, the function assumed string-only arguments, while in some cases cdata error was passed. Now console.local_print() prints all non-string arguments as is, without modifying potential local_eos. Closes #8374 NO_DOC=bugfix NO_TEST=very hard to test
-
- Mar 28, 2023
-
-
Sergey Bronnikov authored
Follows up #8194 NO_CHANGELOG=ci NO_DOC=ci NO_TEST=ci
-
Sergey Bronnikov authored
- remove obsoleted parameters - return non-zero exit code when warnings are found. Doxygen has an option that set exit code to non-zero on warnings, available in Doxygen 1.9.0+, see [1] and [2]. 1. https://github.com/doxygen/doxygen/issues/8023 2. https://www.doxygen.nl/manual/config.html NO_CHANGELOG=doxygen config NO_DOC=doxygen config NO_TEST=doxygen config Follows up #8194
-
Sergey Bronnikov authored
- remove < and > around function names to make them resolvable - place @sa and \sa to the new lines and remove round parenthesis around - add missed dots - added comments for box_tuple_upsert, box_tuple_update, luaT_pusherror etc. - replace \example tags with \code and \endcode, because \example requires a file name with example, when \code allows to place a code inline - comments for macros alignof and likely/unlikely looks a bit ugly, but I couldn't find a better way to resolve doxygen warning - remove dashes after @param - corrected comments for box_tuple_update() and box_tuple_upsert() Closes #8194 NO_CHANGELOG=fix doxygen NO_DOC=fix doxygen NO_TEST=fix doxygen
-
Vladimir Davydov authored
We need MemtxAllocator stats for reporting read view memory usage, see https://github.com/tarantool/tarantool-ee/issues/143. Let's also use them for reporting data memory usage in box.info.memory() for consistency and add a test. It looks more correct that using allocator stats for reporting data memory usage because box.info.memory() is supposed to show high level stats. For low level allocator stats we have box.slab.info(). Note that a memtx tuple may be held by tuple_bless so we have to reset it by creating a new tuple in Lua before checking memory usage. NO_DOC=refactoring NO_CHANGELOG=refactoring
-
Vladimir Davydov authored
We account three metrics: - used_total - total size of allocated memory - used_rv - size of memory held for read views - used_gc - size of memory freed on demand We'll need them to report memtx read view statistics. While we are at it, switch the test to TAP and drop the result file. Needed for https://github.com/tarantool/tarantool-ee/issues/143 NO_DOC=internal NO_CHANGELOG=internal
-
- Mar 27, 2023
-
-
andrei.aksenov authored
Fix grammar, punctuation, and wording NO_CHANGELOG=changelog NO_DOC=changelog NO_TEST=changelog
-
- Mar 24, 2023
-
-
psergee authored
Part of tarantool/tt#286 NO_TEST=third-party dependency NO_DOC=third-party dependency
-
Sergey Bronnikov authored
Follows up #8488 NO_CHANGELOG=testing NO_DOC=testing NO_TEST=testing
-