Tarantool 1.10.14
Released on 2022-08-08.
- Release: v. 1.10.14.
- Tag:
1.10.14
.
1.10.14 is the next stable release in the long-term support (LTS) version 1.10.x release series.
The label “stable” means there are 1.10.x-based applications running in production for quite a while without known crashes, incorrect results or other showstopper bugs.
This release introduces 10 improvements and resolves roughly 20 issues since the 1.10.13 version.
Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in 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 1.10.x series.
- Fedora 35 is now supported (gh-6692).
- Fedora 36 is now supported.
- Ubuntu 22.04 (Jammy Jellyfish) is now supported.
- Fedora 30, 31, 32, and 33 are no longer supported.
- Ubuntu 21.04 (Hirsute Hippo) is no longer supported.
- Updated OpenSSL used for static builds to version 1.1.1n (gh-6947).
- Updated OpenSSL used for static builds to version 1.1.1q.
- Updated libcurl to version 7.83.0 (gh-6029).
- Updated libcurl to version 7.84.0.
- Updated libyaml to the version with fixed stack overflows.
- Fixed a memory leak in the interactive console (gh-6817).
- Fixed an assertion fail when passing a tuple without the primary key
fields to a
before_replace
trigger. Now the tuple format is checked before the execution ofbefore_replace
triggers and after each of them (gh-6780). - Now inserting a tuple with a wrong
id
field into the\_priv
space returns the correct error (gh-6295). - Fixed a bug that was making all fibers created with
fiber_attr_setstacksize()
leak until the thread exit. Their stacks also leaked except whenfiber_set_joinable(..., true)
was used. - Fixed a crash that happened when Tarantool was launched with multiple
-e
or-l
options without spaces between the options and their values (gh-5747). - Fixed the usage of
box.session.peer()
inbox.session.on_disconnect()
triggers. Now it’s safe to assume thatbox.session.peer()
returns the address of the disconnected peer, not nil, as it used to (gh-7014). - Fixed a bug in the sequence cache that could result in an error creating a new sequence (gh-5306).
- Immediate removal of compacted run files created after the last checkpoint optimization now works for the initial JOIN stage of a replica (gh-6568).
- Fixed a crash during the recovery of a secondary index in case the primary index contains incompatible phantom tuples (gh-6778).
- Fixed a bug in the vinyl upsert squashing optimization that could lead to a segmentation fault error (gh-5080).
- Fixed a bug in the vinyl read iterator that could result in a significant performance degradation of range select requests in the presence of an intensive write workload (gh-5700).
- Fixed replicas failing to bootstrap when the master has just restarted (gh-6966).
- Fixed the top part of Lua stack (red zone, free slots, top slot)
unwinding in the
lj-stack
command. - Added the value of
g->gc.mmudata
field tolj-gc
output. - Fixed a bug with
string.char()
builtin recording when no arguments are provided (gh-6371, gh-6548). - Actually made JIT respect the
maxirconst
trace limit while recording (gh-6548). - Backported patches from vanilla LuaJIT trunk (gh-6548, gh-7230).
In the scope of this activity, the following issues have been resolved:
- Fixed emitting for fuse load of constant in GC64 mode (gh-4095, gh-4199, gh-4614).
- Now initialization of zero-filled struct is compiled (gh-4630, gh-5885).
- Actually implemented
maxirconst
option for tuning JIT compiler. - Fixed JIT stack of Lua slots overflow during recording for metamethod calls.
- Fixed bytecode dump unpatching for JLOOP in up-recursion compiled functions.
- Fixed FOLD rule for strength reduction of widening in cdata indexing.
- Fixed
string.char()
recording without arguments. - Fixed
print()
behaviour with the reloaded default metatable for numbers. tonumber("-0")
now saves the sign of number for conversion.tonumber()
now gives predictable results for negative non-base-10 numbers.- Fixed write barrier for
debug.setupvalue()
andlua_setupvalue()
. jit.p
now flushes and closes output file after run, not at program exit.- Fixed
jit.p
profiler interaction with GC finalizers. - Fixed the case for partial recording of vararg function body with
the fixed number of result values in with
LJ_GC64
(i.e.LJ_FR2
enabled) (gh-7172). - Fixed handling of errors during trace snapshot restore.
- Added the check of the iterator type in the
select
,count
, andpairs
methods of the index object. Iterator can now be passed to these methods directly:box.index.ALL
,box.index.GT
, and so on (gh-6501).
- With the
force_recovery
cfg option, Tarantool is now able to boot fromsnap
/xlog
combinations wherexlog
covers changes committed both before and after thesnap
was created. For example,0...0.xlog
that covers everything up to vclock{1: 15}
and0...09.snap
corresponding to vclock{1: 9}
(gh-6794).