Commit Briefs

ed2063c46e Sergey Bronnikov

third_party: update libcurl from 8.3.0 to 8.4.0 (ligurio/2.10-bump-curl-8.4.0)

The patch updates curl module to the version 8.4.0 [1] that brings a number of functional fixes and security fix of SOCKS5 heap buffer overflow (CVE-2023-38545), see description in [2] and commit fb4415d8aee6 ("socks: return error if hostname too long for remote resolve") in [3]. 1. https://curl.se/changes.html#8_4_0 2. https://curl.se/docs/CVE-2023-38545.html 3. https://github.com/curl/curl/commit/fb4415d8aee6c1045be932a34fe6107c2f5ed147 NO_DOC=libcurl submodule bump NO_TEST=libcurl submodule bump (cherry picked from commit 0ea1ba877b8e62e0acb558b55623d93bf58a0e1f)


ba249cc8f5 Yaroslav Lobankov

test: update gh_8083, gh_8445 and gh_7434 tests

These tests fail after the commit [1] has been added to the Luatest: - app-luatest/gh_8083_fatal_signal_handler_test.lua - app-luatest/gh_8445_crash_during_crash_report_test.lua - box-luatest/gh_7434_yield_in_on_shutdown_trigger_test.lua The issue is due to lack of necessary directories: sh: 1: cd: can't cd to /tmp/t/001_app-luatest/server-XXX Just update tests on the simple `fio` module instead `luatest.server`. [1] tarantool/luatest@7d1358c NO_CHANGELOG=internal NO_DOC=internal (cherry picked from commit 23b61351dce4b930dad795d064cc1053a6624091)


7b7d44f745 Yaroslav Lobankov

test: bump test-run to new version

Bump test-run to new version with the following improvements: - luatest: bump luatest to 0.5.7-48-g18859f6 [1] - Adapt use luatest with new --no-clean option [2] - luatest: bump luatest to 0.5.7-49-g9c7710e [3] [1] tarantool/test-run@aa3b34d [2] tarantool/test-run@8ebb3aa [3] tarantool/test-run@82542d3 NO_DOC=test NO_TEST=test NO_CHANGELOG=test (cherry picked from commit f4bc53e8bf4a4f1b626b09a92f152715829f41e0)


719b8d5eae Igor Munkin

sql: assign collation to indexes in CREATE TABLE

Before this patch, if an index was created due to a column's UNIQUE constraint or a column's PRIMARY KEY constraint before adding a collation, and if the column's fieldno was not equal to the index's position in space->index, the collation would not be assigned to the index. Also, this patch fixes an assertion in debug build for the case when an index with more that one field was created before a collation was added. Closes #9229 NO_DOC=bugfix (cherry picked from commit 65608d87afd7c8db36e377e8686f959bb4f588ae)


1273b86729 Vladimir Davydov

ci: add debug_asan_clang workflow

Similarly to release_asan_clang but to test debug build. It is also run only under `asan-ci` and `full-ci` labels. Fiber stack size is 2 times bigger than in the release workflow for luajit tests to pass. Note that this factor is a wild guess. Part of #7327 NO_TEST=ci NO_CHANGELOG=ci NO_DOC=ci (cherry picked from commit 980ad3f44d96ba81060f28210eea7ab03f305fb9)


ecbd3a2d21 Vladimir Davydov

sql: fix memory leak in sqlColumnsFromExprList

It is a part of master's commit cd173ce516b3 ("sql: fix memory leaks"). We need this fix merely to pass debug asan CI. NO_DOC=fix for memleak NO_TEST=fix for memleak NO_CHANGELOG=fix for memleak


e21bcbb7b3 Vladimir Davydov

vinyl: purge cache at exit for ASAN

Required to suppress the ASAN leak detector. Closes #9158 NO_DOC=ASAN NO_TEST=ASAN NO_CHANGELOG=ASAN (cherry picked from commit bf62170fc03883426b156e917f606eee356c056e)


4b5d561cd8 Vladimir Davydov

test: fix flaky gh-2717-no-quit-sigint

This test is quite a flaky in debug ASAN build. Let's fix it before turning debug ASAN on in CI. The issue is due to heavy load popen.read may return nil with 'TimedOut: timed out' error. Just read again as in the other cases of this test. Part of #7327 NO_CHANGELOG=internal NO_DOC=internal (cherry picked from commit 6f48b8d7dea802f96c4ca4b32b156ff028fe4bb8)


3e944ae2a3 Vladimir Davydov

asan: temporary suppress leak reports relatead to luajit

This blocks us from turning debug ASAN CI currently. The ticket for the leakage is #9213. Part of #7327 NO_TEST=internal NO_CHANGELOG=internal NO_DOC=internal (cherry picked from commit 37d0fdbf38668128826b7291c94bf7e6910a1641)


a066e8a11b Vladimir Davydov

unit: fix undefined behaviour in prbuf test

The test start to fail in CI on osx_debug (x86_64) workflow ``` [033] *** test_buffer_foreach_copy_number *** [033] -ok 13 - prbuf(size=256, payload=16, iterations=16) has been validated [033] -ok 14 - prbuf(size=256, payload=16, iterations=32) has been validated [033] -ok 15 - prbuf(size=256, payload=16, iterations=64) has been validated [033] +ok 13 - prbuf(size=256, payload=4294967312, iterations=16) has been validated [033] +ok 14 - prbuf(size=256, payload=4294967312, iterations=32) has been validated [033] +ok 15 - prbuf(size=256, payload=4294967312, iterations=64) has been validated [033] *** test_buffer_foreach_copy_number: done *** ``` NO_CHANGELOG=test fix NO_DOC=test fix (cherry picked from commit 4a86856335f60d9871b3df02ef35a6487da227ad)


Branches



























































































Tags

Tree

.editorconfigcommits | blame
.gdbinitcommits | blame
.gitattributescommits | blame
.github/
.gitignorecommits | blame
.gitmodulescommits | blame
.luacheckrccommits | blame
.pack.mkcommits | blame
.test.mkcommits | blame
AUTHORScommits | blame
CMakeLists.txtcommits | blame
Doxyfilecommits | blame
Doxyfile.API.incommits | blame
FreeBSD/
LICENSEcommits | blame
README.FreeBSDcommits | blame
README.MacOSXcommits | blame
README.OpenBSDcommits | blame
README.mdcommits | blame
TODOcommits | blame
apk/
asan/
changelogs/
cmake/
debian/
doc/
extra/
perf/
rpm/
rump/
src/
static-build/
test/
test-run$commits | blame
third_party/
tools/

README.md

# Tarantool

[![Actions Status][actions-badge]][actions-url]
[![Code Coverage][coverage-badge]][coverage-url]
[![Telegram][telegram-badge]][telegram-url]
[![GitHub Discussions][discussions-badge]][discussions-url]
[![Stack Overflow][stackoverflow-badge]][stackoverflow-url]

[Tarantool][tarantool-url] is an in-memory computing platform consisting of a
database and an application server.

It is distributed under [BSD 2-Clause][license] terms.

Key features of the application server:

* Heavily optimized Lua interpreter with incredibly fast tracing JIT compiler,
  based on LuaJIT 2.1.
* Cooperative multitasking, non-blocking IO.
* [Persistent queues][queue].
* [Sharding][vshard].
* [Cluster and application management framework][cartridge].
* Access to external databases such as [MySQL][mysql] and [PostgreSQL][pg].
* A rich set of built-in and standalone [modules][modules].

Key features of the database:

* MessagePack data format and MessagePack based client-server protocol.
* Two data engines: 100% in-memory with complete WAL-based persistence and an
  own implementation of LSM-tree, to use with large data sets.
* Multiple index types: HASH, TREE, RTREE, BITSET.
* Document oriented JSON path indexes.
* Asynchronous master-master replication.
* Synchronous quorum-based replication.
* RAFT-based automatic leader election for the single-leader configuration.
* Authentication and access control.
* ANSI SQL, including views, joins, referential and check constraints.
* [Connectors][connectors] for many programming languages.
* The database is a C extension of the application server and can be turned
  off.

Supported platforms are Linux (x86_64, aarch64), Mac OS X (x86_64, M1), FreeBSD
(x86_64).

Tarantool is ideal for data-enriched components of scalable Web architecture:
queue servers, caches, stateful Web applications.

To download and install Tarantool as a binary package for your OS or using
Docker, please see the [download instructions][download].

To build Tarantool from source, see detailed [instructions][building] in the
Tarantool documentation.

To find modules, connectors and tools for Tarantool, check out our [Awesome
Tarantool][awesome-list] list.

Please report bugs to our [issue tracker][issue-tracker]. We also warmly
welcome your feedback on the [discussions][discussions-url] page and questions
on [Stack Overflow][stackoverflow-url].

We accept contributions via pull requests. Check out our [How to get
involved][get-involved] guide.

Thank you for your interest in Tarantool!

[actions-badge]: https://github.com/tarantool/tarantool/workflows/release/badge.svg
[actions-url]: https://github.com/tarantool/tarantool/actions
[coverage-badge]: https://coveralls.io/repos/github/tarantool/tarantool/badge.svg?branch=master
[coverage-url]: https://coveralls.io/github/tarantool/tarantool?branch=master
[telegram-badge]: https://img.shields.io/badge/Telegram-join%20chat-blue.svg
[telegram-url]: http://telegram.me/tarantool
[discussions-badge]: https://img.shields.io/github/discussions/tarantool/tarantool
[discussions-url]: https://github.com/tarantool/tarantool/discussions
[stackoverflow-badge]: https://img.shields.io/badge/stackoverflow-tarantool-orange.svg
[stackoverflow-url]: https://stackoverflow.com/questions/tagged/tarantool
[tarantool-url]: https://www.tarantool.io/en/
[license]: LICENSE
[modules]: https://www.tarantool.io/en/download/rocks
[queue]: https://github.com/tarantool/queue
[vshard]: https://github.com/tarantool/vshard
[cartridge]: https://github.com/tarantool/cartridge
[mysql]: https://github.com/tarantool/mysql
[pg]: https://github.com/tarantool/pg
[connectors]: https://www.tarantool.io/en/download/connectors
[download]: https://www.tarantool.io/en/download/
[building]: https://www.tarantool.io/en/doc/latest/dev_guide/building_from_source/
[issue-tracker]: https://github.com/tarantool/tarantool/issues
[get-involved]: https://www.tarantool.io/en/doc/latest/contributing/contributing/
[awesome-list]: https://github.com/tarantool/awesome-tarantool/