3.2.1
Date: 2024-10-28
Tag: 3.2.1
Overview
3.2.1 is the 2nd stable version of the 3.2 release
series. It resolves 46 bugs since 3.2.0.
The "stable" label means that we have all planned features implemented and we
see no high-impact issues. However, if you encounter an issue, feel free to
report it on GitHub.
Compatibility
Tarantool 3.x is backward compatible with Tarantool 2.11.x in the binary data
layout, client-server protocol, and replication protocol.
Please upgrade using the box.schema.upgrade()
procedure to unlock
all the new features of the 3.x series.
Bugs fixed
Core
- Fixed a memory leak in coio on address resolution error (gh-10482).
- Fixed a memory leak in IPROTO on execution of the callback installed with
box.iproto.override()
(gh-10477). - Fixed a memory leak on foreign key constraint check failure (gh-10476).
- Fixed a memory leak on an attempt to create or modify a user denied due to
access restrictions (gh-10485). - Fixed a crash when
slab_alloc_factor
was low and memory pressure was high
(gh-10148). - Fixed a crash in swim on Tarantool shutdown (gh-10495).
- Fixed a crash when the first of two consequent DDL operations was
rolled back due to WAL failure (gh-10235). - Fixed an inconsistency between internal caches and system spaces with
MVCC enabled that could lead to unexplainable errors (gh-10262).
Config
- Fixed scaling a replicaset down to one instance (gh-10716).
Memtx
- Fixed a crash on transaction rollback if memory usage was close to the limit
(gh-10551). - Fixed several bugs when DDL with MVCC enabled could lead to a crash
or violate isolation of other transactions (gh-10146).
Vinyl
- Fixed a memory leak on dump/compaction failure (gh-10489).
- Fixed a bug when
index.select()
could silently skip a tuple if it failed to
load a row from a run file (gh-10512). - Lowered the level used for logging range dump, compaction, split, and
coalesce events fromINFO
toVERBOSE
(gh-10524). - Fixed a bug when a compaction task could crash on a disk read error
(gh-10555). - Fixed a bug when
index.select()
executed in theread-confirmed
transaction isolation mode (default for read-only transactions) could corrupt
the tuple cache by creating a chain bypassing an unconfirmed tuple. The bug
could lead to a crash or invalid query results (gh-10558). - Added a fiber slice check to
index.count()
to prevent it from blocking
for too long while counting tuples in a space stored in memory (gh-10553). - Fixed a bug when an attempt to alter the primary index of an empty space
triggered a crash if executed concurrently with a DML request (gh-10603).
Replication
- Fixed a memory leak on disconnection from replica (gh-10480).
- Fixed a memory leak on a replica when it was removed from the cluster
(gh-10490). - Optimized synchronous transaction queue processing (gh-9917).
LuaJIT
Backported patches from the vanilla LuaJIT trunk (gh-10199). The following
issues were fixed as part of this activity:
- Now 64-bit non-FAT Mach-O object files are generated via
-b -o osx
. - Fixed
string.format()
compilation with many elements. - Fixed
dlerror()
in FFI call returningNULL
. - Fixed
__tostring
metamethod access to enum cdata value. - Fixed limit check in narrowing optimization.
- Dropped finalizer table rehashing after GC cycle (gh-10290).
- Fixed recording of
select(string, ...)
. - Fixed stack allocation after on-trace stack check.
- Fixed recording of
__concat
metamethod that throws an error. - Fixed bit op coercion in
DUALNUM
builds. - Fixed 64-bit shift fold rules.
- Fixed loop optimizations for cdata arguments of vararg FFI functions.
Lua
- Changed return value type of
space:bsize()
fromcdata
tonumber
(gh-9735).
Xlog
- Fixed a memory leak in
xlog.pairs()
on failure to open the file (gh-10479).
Iconv
- Fixed a memory leak in
iconv.new()
(gh-10487).
Datetime
- Fixed a bug that caused
datetime.parse()
ignore thetzoffset
option if a custom format was used (gh-8333). - Forbid non-integers in
datetime.new()
(gh-10391). - Forbid non-integers in
:set()
anddatetime.parse()
(gh-10391). - Forbid non-integers in SQL's
CAST({}) AS datetime
(gh-10391). - Implemented the
tz
option indatetime:parse()
(gh-10420).
Netbox
- Fixed a crash when
net.box
triggers deleted themselves (gh-10622).
SQL
- Fixed a memory leak on an attempt to alter a table view (gh-10484).