2.8.4
Date: 2022-04-25
Tag: 2.8.4
Overview
2.8.4 is the third stable version of the 2.8 release
series. It introduces 1 improvements and resolves 16 bugs since
2.8.3.
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 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.
Functionality added or changed
Build
- Support fedora-35 build. (gh-6692)
Bugs fixed
Core
- Fixed a crash that could happen in case a tuple is deleted from a functional
index while there is an iterator pointing to it (gh-6786). - Fixed memory leak in interactive console (gh-6817).
- Fixed an assertion fail when passing tuple without primary key fields
to before_replace trigger. Now tuple format is checked before execution
of before_replace triggers and after each one (gh-6780). - Banned DDL operations in space on_replace triggers, since they could lead
to a crash (gh-6920). - Fixed a bug due to which all fibers created with
fiber_attr_setstacksize()
leaked until the thread exit. Their stacks also leaked except when
fiber_set_joinable(..., true)
was used.
Vinyl
- Immediate removal of compacted run files created after the last checkpoint
optimization now works for replica's initial JOIN stage (gh-6568). - Fixed crash during recovery of a secondary index in case the primary index
contains incompatible phantom tuples (gh-6778).
Raft
- Reconfiguration of
box.cfg.election_timeout
could lead to a crash or
undefined behaviour if done during an ongoing election with a special WAL
write in progress.
LuaJIT
- Fixed top part of Lua stack (red zone, free slots, top slot) unwinding in
lj-stack
command. - Added the value of
g->gc.mmudata
field tolj-gc
output. string.char()
builtin recording is fixed in case when no arguments are
given (gh-6371, gh-6548).- Actually made JIT respect
maxirconst
trace limit while recording (gh-6548).
Lua
- Fixed
table.equals
result when booleans compared (gh-6386). - Tap subtests inherit strict mode from parent (gh-6868).
Box
- Add iterator type checking and allow to pass iterator as a box.index.{ALL,GT,...} directly (gh-6501).
HTTP client
- Fixed invalid headers after redirect (gh-6101).
Recovery
- When
force_recovery
cfg option is set, Tarantool is able to boot from
snap
/xlog
combinations wherexlog
covers changes committed both before
and aftersnap
creation. For example,0...0.xlog
, covering everything up
to vclock{1: 15}
and0...09.snap
, corresponding tovclock
{1: 9}` (gh-6794).