Download Latest Version 3.6.0 source code.tar.gz (9.7 MB)
Email in envelope

Get an email when there's a new version of Tarantool

Home / 3.6.0
Name Modified Size InfoDownloads / 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 interface parameter is available to be used with the connect URI. It allows to specify the interface to bind the net.box connection to (gh-11803).
  • Updated the metrics submodule from 1.3.0 to 1.6.1.

  • Added a new schema metrics category with the schema_needs_upgrade metric, enabled by default (gh-524) (gh-529).

  • Added a new memory metric, enabled by default (gh-519).

  • Added a new memory_virt metric, enabled by default (gh-521).

  • Fixed possible fio.read errors (gh-527).

  • Added a new label_keys parameter for counter() and gauge() metrics (gh-508).

Core

  • Space and transactional triggers during recovery are now deprecated (gh-11756).
  • Introduced the box.schema.needs_upgrade function 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 interface parameter can now be used in box.cfg.replication URIs. It allows specifying the network interface to bind to for URI connections (gh-11803).
  • Introduced new grant and metagrant privileges. They're only grantable on the universe. The grant privilege allows a user to grant any privilege, excepting grant and metagrant, on an object, object class or universe. The metagrant allows to grant grant and metagrant privileges. 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.promote invocations with box.cfg.election_mode = 'manual' would crash during (gh-11703) or after (gh-11708) server configuration via box.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_TBAR on aarch64.
  • Fixed stack overflow handling for the trace exit.
  • Fixed dangling CType references.
  • Fixed closing VM state after early OOM.
  • Fixed emitting for IR_MUL on x86/x64.
  • Fixed incorrect stp/ldp instructions fusion on aarch64.
  • Fixed SCEV entry invalidation when returning to a lower frame.
  • Fixed macOS 15 / Clang 16 build.
  • Fixed emitting for IR_HREFK on 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 _vuser space view if a user had a privilege on the user entity granted (gh-12089).
  • Fixed a bug when object privileges could remain granted on revoke if they were the last ones in the _priv entry (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.* and roles_cfg.* (any type fields) (gh-10595).
Source: README.md, updated 2025-12-12