3.6.4
Date: 2026-07-09
Tag: 3.6.4
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 resolves 19 bugs since 3.6.3.
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.
Bugs fixed
Core
- Fixed a heap-use-after-free bug when a
space.before_replacetrigger yielded
with disabled MVCC (gh-12779). - Fixed a stack overflow when checking MsgPack input with deeply nested values
containing extension types
(ghs-162). - Fixed an issue where zero values were incorrectly rejected by fixed-point
decimal fields when their scale was greater than or equal to their precision
(gh-12808).
Memtx
- Fixed a bug in MVCC
read-confirmedisolation wheredeleteandupdate
could see an incorrect tuple (gh-12260).
Replication
- Fixed a crash that could occur when a replication source was removed from
box.cfg.replicationat the same time as the node reached its maximum WAL
queue size (configured bybox.cfg.wal_queue_max_size) (gh-12719). - Fixed a replica sending its master an outdated acknowledgement right after
reconnecting, which made the replica's vclock progress appear to move
backwards on the master inbox.info.replication(gh-12795). - Fixed a bug where replicas kept their old connection to the master and
ignored changes to replication parameters (gh-12728). election_mode='off'has been reworked internally. A promoted off-mode
node will now be reported as'leader'inbox.info.election.state.
Additionally, such nodes are now able to vote for other nodes that may
have different election modes (gh-8095).
LuaJIT
Backported patches from the vanilla LuaJIT trunk (gh-12480). The following
issues were fixed as part of this activity:
- Fixed incorrect JIT behavior for vararg FFI functions on the macOS AArch64
platform (gh-6097). - Fixed various FFI ABI and calling convention issues for x64/AArch64
architectures. - Fixed
ipairs_aux()to match JIT backend behavior on x86/x64. - Fixed
os.time()returning-1. - Fixed UBSan warnings for
table.new().
SQL
- Added permission checks when creating a trigger in SQL.
Now only users with 'alter' privileges on a table can create
triggers for that table
(ghs-163). - Fixed collisions of prepared statement IDs - now a new prepared statement
will always be assigned a free ID (gh-12537). - An error now occurs if a column appears more than once in a subquery of
a SELECT statement (gh-12337).
Lua
Datetime
- Fixed parsing for time with a decimal fraction of hour or minute (gh-12082).
- Fixed a stack overflow
strptime()function when parsing
timezones (ghs-146).
Pickle
- Fixed abortion on calling
pack()with an empty format string
or a string value for the'a'format specifier (gh-12063).