- Sep 09, 2021
-
-
EvgenyMekhanik authored
Currently getting iproto statistics per thread is possible only in debug mode, using `ERRINJ_IPROTO_SINGLE_THREAD_STAT` (it can be used only in tests). This way have several disadvantages: first of all `errinj` is not a place to get statistics, secondly user may be interested in getting iproto statistics per thread. In this patch `box.stat.net.thread` was implemented, it can be used for getting same statistics as from `box.stat.net` but per thread. Part of #6293 @TarantoolBot document Title: getting network statistic per thread was implemented User has possibility to run several iproto threads, but at the moment he can get only general statistics, which combines statistics for all threads. Now `box.stat.net.thread` has been implemented to get the same statistics as when using `box.stat.net`, but for a thread. User can call `box.stat.net.thread()` as a function to get general network statistics per threads. For example for two iproto threads: --- - - SENT: total: 0 rps: 0 CONNECTIONS: current: 0 rps: 0 total: 0 REQUESTS: current: 0 rps: 0 total: 0 RECEIVED: total: 0 rps: 0 - SENT: total: 0 rps: 0 CONNECTIONS: current: 0 rps: 0 total: 0 REQUESTS: current: 0 rps: 0 total: 0 RECEIVED: total: 0 rps: 0 ... Also user can indexed it as a table by thread number. For example `box.stat.net.thread[1]` returns network statistics for first iproto thread: --- - SENT: total: 0 rps: 0 CONNECTIONS: current: 0 rps: 0 total: 0 REQUESTS: current: 0 rps: 0 total: 0 RECEIVED: total: 0 rps: 0 ...
-
- Sep 08, 2021
-
-
Vladimir Davydov authored
Make lbox_tuple_format_new (exported as box.internal.new_tuple_format to Lua) reuse tuple formats. It's safe, because formats exported to Lua are immutable. This fixes a net.box error when one creates/closes a lot of net.box connections: a net.box connection creates a few formats for a local version of the schema so if the garbage collector isn't invoked to clean up after it, Tarantool can run out of format ids. Closes #6217
-
Vladimir Davydov authored
An ephemeral space format doesn't have a dictionary so we ignore dictionaries in format hashing and comparison functions. However, formats exported to Lua (for net.box schema), which could also be reused, do define field names. Since we'd like to reuse those as well, we need to take field names into account while doing format hashing and comparison. Needed for #6217
-
Vladimir Davydov authored
Apart from ephemeral space formats, we can also reuse formats exported to Lua, e.g. for net.box schema. Let's rename the flag and update the comments to be relevant for all cases. Needed for #6217
-
Vladimir Davydov authored
This patch adds xmalloc, xcalloc, xrealloc, xstrdup, and xstrndup helper functions. Each of them calls the corresponding memory allocation function and panics if it fails. See the issue description for the full justification. Closes #3534
-
- Sep 02, 2021
-
-
Mergen Imeev authored
This patch fixes the problem with copying an empty string in mem_copy(). Previously, because the string length was 0, an error was thrown, but the diag was not set, which could lead to an error due to an empty diag or to a double free. Closes #6157 Closes #6399
-
- Sep 01, 2021
-
-
Nikita Pettik authored
It contains test case verifying that during parallel index build the first index to finish wins the race and aborts another TX(s). For the synchronization sake channels were used. However, in fact containing the same number of tuples in indexes we can't predict which index finishes first, so sometimes channel:get() executed inside fiber building index may hang. Hence, let's simply fill one of spaces with a bit more tuples and remove channel:get() from functions building indexes. Closes #6354
-
Nikita Pettik authored
In case we are updating "cluster" field in on_replace_dd_schema trigger we do not check verifying that value corresponding to "cluster" key is uuid. Meanwhile in contrast to other tuple_field_*() decoding functions tuple_field_uuid() EXPECTS that passed value is type of mp_string. So let's add extra string check to tuple_field_uuid(). Closes #6332
-
Nikita Pettik authored
On replace data-dictionary triggers do not expect that exceptions can be raised from their body. Unfortunately, on_replace_dd_schema still contains one invocation of diag_raise() which may lead to unpredictable results. So let's replace it with diag_set(). Part of #5332
-
EvgenyMekhanik authored
In previous commit closing connection without dropping requests was implemented. Now we can enable part of iproto transaction test which depends on it. Also test was reworked to make it more clear and all tests for 'vinyl' was removed because they are not related to streams.
-
EvgenyMekhanik authored
At the moment, when a net.box connection is closing we are cancel worker fiber. In this case, data that was not sent is lost. In this patch connection closing without dropping requests was implemented: before canceling fiber we wait on conditional variable until all data will be sent. Closes #6338
-
EvgenyMekhanik authored
luaT_checkfibercond is necessary to implemenent closing connection without unsent data lost. Also all other similar functions have a different signiture. PArt of #6338
-
Kirill Yukhin authored
To be able to configure libcurl for ARM64 CPU on Fedora distros with linker hardening it is necessary to enable `-fPIC`. It fails with wrong relocation type for glibc symbols (e.g. socket) otherwise. Closes #6366
-
Mergen Imeev authored
After this patch, DECIMAL values can be bound like any other supported by SQL values. Closes #4717
-
- Aug 27, 2021
-
-
Mergen Imeev authored
After this patch, getting an unknown msgpack extension in SQL will throw the correct error. Closes #6375
-
- Aug 25, 2021
-
-
Vladimir Davydov authored
__tostring always returns the type name, which is 'net.box.request'. __serialize returns user-defined fields attached to the future or an empty table if there's none. Closes #6314
-
- Aug 20, 2021
-
-
Vladimir Davydov authored
The new version (2.10.0) is considered to be lower than 2.2.1, because the test uses string comparison, which results in a test failure. Remove the useless check.
-
Kirill Yukhin authored
Four changelog entries were fixed to resolve syntax errors.
-
Kirill Yukhin authored
-
Alexander Turenko authored
The new release policy suggests to use X.Y.Z-alphaN, X.Y.Z-betaN, X.Y.Z-rcN tags for pre-releases. See the policy document here: https://github.com/tarantool/tarantool/discussions/6182 This commit enforces the new versioning for tarantool builds that're made from CI. Tarballs -------- When we'll add the 2.10.0-beta1 tag, the tarball will be named so: > tarantool-2.10.0-beta1.tar.gz When we'll add one commit upward the tag, the tarball will be named so: > tarantool-2.10.0-beta1.1.dev.tar.gz (In fact, we don't deploy tarballs per push anymore, so it is just for the same of completeness.) For 2.10.0 release it'll be named as: > tarantool-2.10.0.tar.gz How to try: `make -f .gitlab.mk source`. Packages -------- When we'll add the 2.10.0-beta1 tag, the packages for Ubuntu Focal will be named so: > tarantool_2.10.0~beta1-1_amd64.deb > tarantool-common_2.10.0~beta1-1_all.deb > tarantool-dev_2.10.0~beta1-1_amd64.deb The sources packaged together with the package will be named so: > tarantool_2.10.0~beta1-1.debian.tar.xz > tarantool_2.10.0~beta1-1.dsc > tarantool_2.10.0~beta1.orig.tar.xz > tarantool-2.10.0~beta1.tar.xz When we'll add one commit upward the tag, those files will look so: > tarantool_2.10.0~beta1.1.dev-1_amd64.deb > tarantool-common_2.10.0~beta1.1.dev-1_all.deb > tarantool-dev_2.10.0~beta1.1.dev-1_amd64.deb > tarantool_2.10.0~beta1.1.dev-1.debian.tar.xz > tarantool_2.10.0~beta1.1.dev-1.dsc > tarantool_2.10.0~beta1.1.dev.orig.tar.xz > tarantool-2.10.0~beta1.1.dev.tar.xz (In fact, we don't deploy packages per push anymore, so it is just for the same of completeness.) For 2.10.0 release it'll be named so: > tarantool_2.10.0.gcb3bdbf2a-1_amd64.deb > tarantool-common_2.10.0.gcb3bdbf2a-1_all.deb > tarantool-dev_2.10.0.gcb3bdbf2a-1_amd64.deb > tarantool_2.10.0.gcb3bdbf2a-1.debian.tar.xz > tarantool_2.10.0.gcb3bdbf2a-1.dsc > tarantool_2.10.0.gcb3bdbf2a.orig.tar.xz > tarantool-2.10.0.tar.xz How to try: `OS=ubuntu DIST=focal make -f .gitlab.mk package`. Fixes #6184
-
Alexander Turenko authored
See the previous commit 'test: descrease instance file name length' for the problem description. Since we're going to use the tags like 2.10.0-beta1 for upcoming pre-releases, we have even less symbols for a filename of a unix socket. So I chose the shorter names on the test-run side: foo.socket-iproto -> foo.i, foo.socket-admin -> foo.c (console). See https://github.com/tarantool/test-run/pull/312 This update is mostly necessary for the current master branch, but it'll be applied for 1.10 as well: we keep test-run consistent across alive branches. Part of #6184
-
Alexander Turenko authored
First, several facts: * The maximal unix socket file length is 108 symbols on Linux (in fact, 107 for tarantool console socket, see #4634). * We run testing during building of RPM packages. * When tests are run, they use the build directory for temporary testing files and tarantool console unix socket files. * Test-run uses an instance script name to form a unix socket name for tarantool console. * We plan to change package version format and add .dev suffix for transient (non tagged) commits. * The package version participates in the build directory name, when we're building an RPM package. If we'll enable the new version format just now, we'll unable to listen on the unix socket like the following (the length is 111): ``` /build/usr/src/debug/tarantool-2.9.0.353.dev/test/var/023_box/gh-3633-simple-tuple-size-increasing.socket-admin ``` So I changed the instance file name to make it shorter. Of course, there are ways to solve the problem at all, this commit is just workaround. Part of #6184 Follows up #3633
-
VitaliyaIoffe authored
Was added 'export DEBIAN_FRONTEND=noninteractive', because there are packages, which are noninteractive by default. So, CI raises 'Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?'.
-
VitaliyaIoffe authored
Were added workflows with *.rpm or *.deb packaging for arm architecture. Those workflows only verify package builds and don't deploy them to our repositories for now. Part of #6222
-
VitaliyaIoffe authored
Tests were turned off from arm workflows according to instability. Needed for #6222
-
Alexander Turenko authored
It requires update_repo.sh changes, which are not trivial in verification. We want to be sure that all apt/yum metainformation is generated correctly, so we'll postpone the automatic deployment task. Part of #6222
-
- Aug 19, 2021
-
-
Alexander Turenko authored
Follows up #6185
-
Mergen Imeev authored
-
Mergen Imeev authored
This patch enables static and dynamic type check for functions SUBSTR(), GROUP_CONCAT(), REPLACE(), TRIM(). All these functions afther this patch will be able to return VARINARY value when VARBINARY arguments are given instead of STRING arguments. Closes #6105
-
Mergen Imeev authored
This patch enables static and dynamic type check for aggregate functions SUM(), AVG() and TOTAL(). Part of #6105
-
Mergen Imeev authored
Prior to this, the patch functions MIN(), MAX(), LEAST() and GREATEST() showed SCALAR as result types in metadata. However, in reality, the type of the result could be any scalar type. After this patch, the type of the result will always be the same as the type in the metadata. Also, for MIN() and MAX() functions, the type of the result will be the same as the type of the argument. For the LEAST() and GREATEST() functions, the result type will be the same as the type of the arguments if all arguments are of the same type, or it will be NUMBER if all arguments are of numeric types, or it will be SCALAR. Part of #6105
-
Mergen Imeev authored
This patch enables static and dynamic type checks for functions that do not need any rework. Part of #6105
-
Mergen Imeev authored
This patch introduces a runtime type checking mechanism for SQL built-in functions. However, it is currently disabled as the functions themselves need to be prepared for such changes. Part of #6105
-
Mergen Imeev authored
This patch introduces a static type checking mechanism for SQL built-in functions. However, it is currently disabled as the functions themselves need to be prepared for such changes. Part of #6105
-
Mergen Imeev authored
Prior to this patch, the number of arguments for functions with a variable number of arguments was checked at runtime. After this patch, it will be checked during parsing. For functions with a constant number of arguments, it is always checked during parsing. Part of #6105
-
Mergen Imeev authored
Currently, the SQL built-in hash table contains one already defined implementation for each SQL built-in function. This is rather inconvenient because some built-in SQL functions can accept arguments of more than one type, and the type of the result can depend on the types of the arguments. In addition, the number of arguments can be variable for some built-in SQL functions. For these reasons, we are forced to check the number of arguments and their type at runtime. To make it possible to check types of arguments and their number during parsing, the hash table has been modified so that functions can now have more than one implementation. Part of #6105
-
Mergen Imeev authored
This patch changes the signature of SQL built-in function TRIM(). This gives us an easier way to check the types of the arguments to this function. Additionally, these changes fix a bug where using TRIM with the BOTH, LEADING, or TRAILING keywords would result in a loss of a collation. Needed for #6105 Closes #6299
-
VitaliyaIoffe authored
Follow-up #6185
-
Mergen Imeev authored
-
Mergen Imeev authored
After this patch SQL built-in function QUOTE() will return the argument in case DOUBLE value is given. If the argument is not number, string representation of the argument will be returned. Closes #6239 @TarantoolBot document Title: QUOTE() and DOUBLE argument After this patch function QUOTE() will return argument in case it receives DOUBLE value as an argument. The same for all other numeric types. In case it was given value of non-numeric type, it will return string representation of the argument.
-