| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 3.6.0 source code.tar.gz | 2025-12-12 | 9.7 MB | |
| 3.6.0 source code.zip | 2025-12-12 | 12.0 MB | |
| README.md | 2025-12-12 | 5.8 kB | |
| Totals: 3 Items | 21.7 MB | 2 | |
3.6.0
Date: 2025-12-12 Tag: 3.6.0
Overview
Tarantool 3.x is the recommended release series. Users of Tarantool 2.11 are encouraged to update to the latest 3.x release.
This release introduces 8 improvements and resolves 18 bugs since 3.5.1.
Please consider the full list of user-visible changes below.
Compatibility
Tarantool 2.x and 3.x are compatible in the binary data layout, client-server protocol, and replication protocol. It means upgrade may be performed with zero downtime for read requests and the order-of-network-lag downtime for write requests.
Please follow the upgrade procedure to plan your update actions.
Users of Tarantool 2.x may be interested in the compat options that allow to imitate some 2.x behavior. This allows to perform application code update step-by-step, not all-at-once.
Functionality added or changed
Lua
- Added a new Lua module -
ulid. - Now the
interfaceparameter is available to be used with theconnectURI. It allows to specify the interface to bind the net.box connection to (gh-11803). -
Updated the
metricssubmodule from 1.3.0 to 1.6.1. -
Added a new
schemametrics category with theschema_needs_upgrademetric, enabled by default (gh-524) (gh-529). -
Added a new
memorymetric, enabled by default (gh-519). -
Added a new
memory_virtmetric, enabled by default (gh-521). -
Fixed possible
fio.readerrors (gh-527). -
Added a new
label_keysparameter forcounter()andgauge()metrics (gh-508).
Core
- Space and transactional triggers during recovery are now deprecated (gh-11756).
- Introduced the
box.schema.needs_upgradefunction checking if an upgrade to a newer Tarantool schema version is required (gh-11877). - Sped up snapshot recovery by up to 70% by offloading MsgPack decoding to a separate thread (gh-11888).
- The
interfaceparameter can now be used inbox.cfg.replicationURIs. It allows specifying the network interface to bind to for URI connections (gh-11803). - Introduced new
grantandmetagrantprivileges. They're only grantable on theuniverse. Thegrantprivilege allows a user to grant any privilege, exceptinggrantandmetagrant, on an object, object class oruniverse. Themetagrantallows to grantgrantandmetagrantprivileges. Both only allow granting to other users, no granting to oneself is allowed by them (gh-11528).
Bugs fixed
Replication
- Fixed two related bugs when concurrent
box.ctl.promoteinvocations withbox.cfg.election_mode = 'manual'would crash during (gh-11703) or after (gh-11708) server configuration viabox.cfg.
LuaJIT
Backported patches from the vanilla LuaJIT trunk (gh-11691). The following issues were fixed as part of this activity:
- Fixed incorrect emitting for
IR_TBARon aarch64. - Fixed stack overflow handling for the trace exit.
- Fixed dangling
CTypereferences. - Fixed closing VM state after early OOM.
- Fixed emitting for
IR_MULon x86/x64. - Fixed incorrect
stp/ldpinstructions fusion on aarch64. - Fixed SCEV entry invalidation when returning to a lower frame.
- Fixed macOS 15 / Clang 16 build.
- Fixed emitting for
IR_HREFKon aarch64.
Core
- Users and roles defined in
credentials.*are now synchronized with the config on reload and instance restart: users and roles removed from config are dropped automatically, while manually created users and roles remain untouched (gh-11827). Manual action required: you have to run the following script to ensure that all the users and roles are managed solely by the YAML configuration. It allows to identify users/roles that are kept forever, because created from Lua (or from configuration on Tarantool version less than 3.6.0), and decide whether to transfer the ownership to the YAML configuration or finally delete them. - Added character filtering for syslog output according to RFC 3164: only SP (%d32) and VCHAR (%d33-126) are allowed. Any character < 32 or > 126 is now escaped (gh-12006).
- Fixed a bug when a sequence name could be inaccessible to a user if he had an access granted on the sequence by another user (gh-12088).
- Fixed an invisibility of entries in the
_vuserspace view if a user had a privilege on theuserentity granted (gh-12089). - Fixed a bug when object privileges could remain granted on revoke if they were
the last ones in the
_priventry (gh-11528). - Fixed a bug when function IDs grew monotonously, resulting in an overflow after some amount of function modifications, even if the total number of functions was constant (gh-11849, gh-11851).
- Fixed performance degradation when updating space format or dropping a space due to inefficient tuple dictionary cleanup (gh-12115).
Config
- Template variables now expand inside
app.cfg.*androles_cfg.*(anytype fields) (gh-10595).