Commit Briefs

8ed8c201b7 Sergey Bronnikov

luajit: bump new version (ligurio/lj-881-fix-lua-concat)

* LJ_GC64: Fix lua_concat(). Part of #8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump NO_CHANGELOG=LuaJIT submodule bump


a5d7f34294 Vladimir Davydov

box: fix schema upgrade replication

Commit 97c2c9a4fb58 ("box: disable DDL with old schema") added a check to the on-replace trigger installed on all system spaces that fails the operation if the schema version is outdated unless it's recovery time or the operation was issued by the fiber performing a schema upgrade. This new check breaks the replication use case: 1. Tarantool binary is updated on all instances to a version that requires a newer schema - OK. 2. box.schema.upgrade() is called on the master instance - OK. 3. Operations performed by the master to upgrade the schema are replicated to the replicas - FAIL. To fix this issue, let's bypass the schema version check for applier fibers. Follow-up #7149 Closes #9048 NO_DOC=bug fix NO_CHANGELOG=unreleased


292164eddb Yaroslav Lobankov

Add testing for static build packaging

This patch finally brings desired testing for static build packages. How it works: In a few words, we have two workflow files: calling and callable. The callable workflow (static_build_pack_test_deploy.yml) is parametrized and contains all the logic with the building, testing, and deploying packages. It takes just two inputs: package platform and JSON matrix for testing. The calling workflow (packaging.yml) just runs callable one with specific parameters and contains all the logic related to triggering by events and concurrency. The static_build_pack_test_deploy.yml workflow consists of three jobs: `build`, `test`, and `deploy`. Artifacts between jobs are passed via the `upload-artifact` and `download-artifact` actions. The `test` job is a matrix one and verifies packages on provided Linux distros passed through input. After the testing is done, the `deploy` job is intended to upload packages to repositories on a tag push, which means release or pre-release. Note, for starting Docker containers to test packages we use PackPack images because they have almost all requirements to run tests. Follows up #8771 Follows up #8840 Follows up #8866 Closes tarantool/tarantool-qa#322 NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci


88333d13eb Igor Munkin

luajit: bump new version

* Fix maxslots when recording BC_TSETM. * Fix TDUP load forwarding after table rehash. * Fix binary number literal parsing. * Fix maxslots when recording BC_VARG, part 3. * test: fix flaky <unit-jit-parse.test.lua> again * Fix predict_next() in parser. * Revert to trivial pow() optimizations to prevent inaccuracies. * Fix pow() optimization inconsistencies. * Improve assertions. * Remove pow() splitting and cleanup backends. * test: introduce `samevalues()` TAP checker * MIPS: Add MIPS64 R6 port. * DynASM/MIPS: Fix shadowed variable. * MIPS64: Fix register allocation in assembly of HREF. * Prevent integer overflow while parsing long strings. * Fix LJ_MAX_JSLOTS assertion in rec_check_slots(). * Fix debug.getinfo() argument check. * ARM: Fix GCC 7 -Wimplicit-fallthrough warnings. * DynASM: Fix warning. * Fix GCC 7 -Wimplicit-fallthrough warnings. * Cleanup math function compilation and fix inconsistencies. * FFI: Eliminate hardcoded string hashes. * Windows: Add UWP support, part 1. * build: fix non-Linux/macOS builds * PPC: Add soft-float support to JIT compiler backend. * PPC: Add soft-float support to interpreter. * MIPS64: Add soft-float support to JIT compiler backend. * MIPS: Fix handling of spare long-range jump slots. * test: introduce mcode generator for tests * MIPS: Use precise search for exit jump patching. * sysprof: improve parser's memory footprint * tools: add execution permission to sysprof parser * sysprof: remove `split by vmstate` option Part of #8825 NO_DOC=LuaJIT submodule bump NO_TEST=LuaJIT submodule bump


44bc36756d Yaroslav Lobankov

ci: fix artifact names in Clang related workflows

NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci


e3ff3d5c7c Yaroslav Lobankov

ci: bump Clang version to 16 in release build ASAN testing

Run release build ASAN testing inside a Docker container created from the `tarantool/testing:ubuntu-jammy-clang16` Docker image with Clang 16 installed. Closes tarantool/tarantool-qa#319 NO_DOC=ci NO_TEST=ci NO_CHANGELOG=ci


dfa67ae63a Alexander Turenko

test: fix flaky box.cfg() env vars test

The test starts a child tarantool instance in the current working directory and run box.cfg(). The current working directory is a source directory. test-run.py runs many tests from it in parallel and in some circumstances it appears that the directory is locked by some other box.cfg() call from some other tarantool instance (maybe another test is doing the same). The test is rewritten to use a temporary directory for such runs. The test.interactive_tarantool helper is used for convenience instead of a popen wrapper that is written specifically for the test. NO_DOC=It is a fix of a test. NO_CHANGELOG=see NO_DOC


8c7da93155 Yaroslav Lobankov

test: disable ASAN for box/tx_man.test.lua

For some unknown reason ASAN crashes with SIGSEGV on this test during shutdown. See tarantool/tarantool-qa#324 for details. NO_DOC=test NO_CHANGELOG=test


6c825cb7e6 Yaroslav Lobankov

test: bump test-run to new version

Bump test-run to new version with the following improvements: - Fix non-supported character in log file name [1] - luatest: bump luatest to 0.5.7-43-g251b35f [2] - luatest: bump luatest to 0.5.7-44-g2d51155 [3] [1] tarantool/test-run@c8465a5 [2] tarantool/test-run@e84fd00 [3] tarantool/test-run@22951e0 NO_DOC=test NO_TEST=test NO_CHANGELOG=test


30fc565581 Kirill Yukhin

Add @Totktonada as codeowner for config

I want to receive review request notifications about the changes and let people know who is responsible to accept them. NO_CHANGELOG=no code changes NO_TEST=no code changes NO_DOC=no code changes


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
CONTRIBUTING.mdcommits | 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]
[![OSS Fuzz][oss-fuzz-badge]][oss-fuzz-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 [contributing
guide][contributing].

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
[oss-fuzz-badge]: https://oss-fuzz-build-logs.storage.googleapis.com/badges/tarantool.svg
[oss-fuzz-url]: https://oss-fuzz.com/coverage-report/job/libfuzzer_asan_tarantool/latest
[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
[contributing]: CONTRIBUTING.md
[awesome-list]: https://github.com/tarantool/awesome-tarantool/