Tarantool 2.10.8
Released on 2023-09-14.
- Release: v. 2.10.8.
- Tag:
2.10.8
.
2.10.8 is the ninth stable version of the 2.10 release series. It introduces 5 improvements and resolves 28 bugs since 2.10.7.
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.
Tarantool 2.x is backward compatible with Tarantool 1.10.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 2.x series.
- LuaJIT now can be fuzzed using grammar-based fuzzer (gh-4823).
- Hardening against memory corruption attacks is now enabled by default on FreeBSD (gh-7536).
- Added the CMake option
FIBER_STACK_SIZE
to set the default fiber stack size. - Updated libcurl to version 8.3.0.
- Fixed a bug when Tarantool failed to decode a request containing an unknown IPROTO key. The bug resulted in broken connectivity between Tarantool 2.10 and 2.11 (gh-8745).
- Fixed a bug causing the
ER_CURSOR_NO_TRANSACTION
failure for transactions on synchronous spaces when theon_commit/on_rollback
triggers are set (gh-8505). - Fixed a bug causing the effective session and user are not propagated
to
box.on_commit
andbox.on_rollback
trigger callbacks when transaction is synchronous (gh-8742). - Fixed a crash that could happen when Tarantool is started in the background mode (gh-6128).
- Fixed a bug when MVCC sometimes lost gap record (gh-8326).
- Fixed a bug when MVCC rollback of prepared statement could break internal invariants (gh-8648).
- Now MVCC engine automatically aborts a transaction if it reads changes of a prepared transaction and this transaction is aborted (gh-8654).
- Fixed a bug that caused writing incorrect values into the
stream_id
field of xlog headers (gh-8783). - Fixed a bug when a space that is referenced by a foreign key could not be truncated even if the referring space was empty (gh-8946).
- Fixed a crash that could happen when Tarantool is compiled by
clang
version 15 and above with enabled AddressSanitizer (tarantool/tarantool-qa#321). - Fixed a use-after-free bug in iproto server code (gh-9037).
- Fixed a heap-buffer-overflow bug in fiber creation code (gh-9026).
- Fixed a heap-use-after-free bug in the transaction manager, which could occur when performing a DDL operation concurrently with a transaction on the same space (gh-8781).
- Fixed a heap-use-after-free bug in the Vinyl read iterator caused by a race between a disk read and a memory dump task. The bug could lead to a crash or an invalid query result (gh-8852).
- Fixed a possible failure to promote the desired node by
box.ctl.promote()
on a cluster with nodes configured withelection_mode = "candidate"
(gh-8497). - Fixed nodes configured with
election_mode = 'candidate'
spuriously detecting a split-vote when another candidate should win with exactly a quorum of votes for it (gh-8698).
Backported patches from the vanilla LuaJIT trunk (gh-8516, gh-8825). The following issues were fixed as part of this activity:
- Fixed canonicalization of +-0.0 keys for
IR_NEWREF
. - Fixed result truncation for
bit.rol
on x86_64 platforms. - Fixed
lua_yield()
invocation inside C hooks. - Fixed memory chunk allocation beyond the memory limit.
- Fixed TNEW load forwarding with instable types.
- Fixed use-def analysis for
BC_VARG
,BC_FUNCV
. - Fixed
BC_UCLO
insertion for returns. - Fixed recording of
BC_VARG
with unused vararg values. - Initialization instructions on trace are now emitted only for the first member of a union.
- Prevent integer overflow while parsing long strings.
- Fixed various
^
operator andmath.pow()
function inconsistencies. - Fixed parsing with predicting
next()
andpairs()
. - Fixed binary number literal parsing. Parsing of binary number with a zero fractional part raises error too now.
- Fixed load forwarding optimization applied after table rehashing.
- Fixed recording of the
BC_TSETM
.
- Fixed the xlog reader Lua module to show unknown row header fields. Before this change the xlog reader silently skipped them.
- Fixed a heap-use-after-free bug in the function creating a tuple
format Lua object for
net.box
(gh-8889).
- Fixed the memory leaks caused by the multi-statement transaction errors in the space index building and the space format checking operations (gh-8773).
- Fixed a bug in the box console implementation because of which the
language
parameter was shared between connected clients (gh-8817). - Fixed an invalid memory access in a corner case of a specialized comparison function (gh-8899).
- Fixed console ignoring
-i
flag in case stdin is not a tty (gh-5064).
- Fixed a streaming connection stuck if etcd is stopped unexpectedly (gh-9086).
- Fixed decoding datetime intervals with fields larger than possible int32 values (gh-8887).