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_replacetrigger. Now the tuple format is checked before the execution ofbefore_replacetriggers and after each of them (gh-6780). - Now inserting a tuple with a wrong
idfield into the\_privspace 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
-eor-loptions 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-stackcommand. - Added the value of
g->gc.mmudatafield tolj-gcoutput. - Fixed a bug with
string.char()builtin recording when no arguments are provided (gh-6371, gh-6548). - Actually made JIT respect the
maxirconsttrace 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
maxirconstoption 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.pnow flushes and closes output file after run, not at program exit.- Fixed
jit.pprofiler 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_FR2enabled) (gh-7172). - Fixed handling of errors during trace snapshot restore.
- Added the check of the iterator type in the
select,count, andpairsmethods 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_recoverycfg option, Tarantool is now able to boot fromsnap/xlogcombinations wherexlogcovers changes committed both before and after thesnapwas created. For example,0...0.xlogthat covers everything up to vclock{1: 15}and0...09.snapcorresponding to vclock{1: 9}(gh-6794).