- Description:
- [Mirror] Middleware for data
- Last Change:
- Clone URL:
Commit Briefs
test: make tests compatible with --script (ligurio/gh-8612-update-cli-options)
Part of #8612 NO_CHANGELOG=internal NO_DOC=internal
test: bump test-run to a new version
Part of #8612 NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal
main: require --script for setting path to a script
Patch forbids setting path to a Lua script without option -s/--script and document option in usage and manual page. Closes #8612 NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal
main: introduce an option --repl
Part of #8612 NO_CHANGELOG=internal NO_DOC=internal NO_TEST=internal
main: introduce an option --script
Patch introduces an option --script for specifying a path to a Lua script. It works in the same way as passing a path without an option: ``` $ ./build/src/tarantool sample.lua Script name is sample.lua $ ./build/src/tarantool --script sample.lua Script name is sample.lua ``` In future we will forbid specifying a path without --script option. This patch is needed for switching to a new way in regression testing. Part of #8612 NO_CHANGELOG=not a user-visible change NO_DOC=not a user-visible change NO_TEST=TODO
static-build: enable compiler optimizations for dependencies
An autoconf-generated configure script doesn't enable compiler optimization flags if CFLAGS / CXXFLAGS options are set explicitly. We started setting CFLAGS / CXXFLAGS in commit e6abe1c91ae3 ("cmake: add extra security compiler options"). As a result, users started experiencing performance degradation issues, like the one described in tarantool/tarantool-ee#440. Let's set -O2 in CFLAGS / CXXFLAGS explicitly to fix that. Closes #8606 Needed for tarantool/tarantool-ee#440 NO_DOC=build NO_TEST=build
lua: implement stubs for etcd client
To enable etcd client set the following CMake variables: - ENABLE_ETCD_CLIENT: ON - ETCD_CLIENT_DIR: path to a directory with etcd client Lua source files If ENABLE_ETCD_CLIENT is unset, then a stub implementation is built, which spits an error on attempt require etcd-client. Needed for https://github.com/tarantool/tarantool-ee/issues/443 MSG="stubs for enterprise version, no user-visible changes" NO_CHANGELOG=MSG NO_DOC=MSG NO_TEST=MSG
test: re-enable linearizable test after fix
The test flaked a lot on FreeBSD and Mac OS due to some proxy problems which were fixed in scope of tarantool/luatest@5b704ac. Another possible failure looked like this: NO_WRAP [006] not ok 5 linearizable-read.test_leader_change [006] # Can't modify data on a read-only instance - it is an orphan [006] # stack traceback: [006] # ...tarantool/test/replication-luatest/linearizable_test.lua:196: in function 'linearizable-read.test_leader_change' [006] # ... [006] # [C]: in function 'xpcall' NO_WRAP Fix it by waiting for the server to follow its upstreams. Closes tarantool/tarantool-qa#277 NO_DOC=test fix NO_CHANGELOG=test fix
replication: reload URIs of anon replicas on reconfiguration
In case box.cfg.replication isn't update by box.cfg, we don't try to reestablish replication connections, but we still need to reload URIs (recreate IO stream contexts created from URIs) because a URI parameter may store a path to an SSL certificate file, which could change. This was done in commit 655290aa7a8b3 ("replication: always reload URIs on reconfiguration"). There's a bug in the commit: it works as expected for appliers that already connected in the past and received UUID but it ignores anonymous appliers, i.e. appliers that never connected, as a result the following code fails: -- Configure replication using a wrong SSL certificate. -- This leaves anonymous appliers reconnecting in the background. box.cfg{replication = {...}} -- Update the SSL certificate file and reload replication URIs. -- At this point, the anonymous applier should finally connect. box.cfg{replication = box.cfg.replication} Needed for tarantool/tarantool-ee#432 NO_TEST=ee NO_DOC=bug fix NO_CHANGELOG=unreleased
core: fix possible integer overflow in net_box.c
The netbox_transport_send_and_recv() function takes a part of the response size as a parameter, and it is possible that the resulting size could become larger than SIZE_MAX, resulting in an integer overflow and a segmentation fault. Closes #tarantool/security#121 NO_DOC=bugfix
Branches
Tree
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/