Date: 2022-04-25

Tag: 1.10.13

## Overview

1.10.13 is the next stable release in the [long-term support (LTS)
version][release_policy][release_policy] 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 1 improvements and resolves roughly 13
issues since the 1.10.12 version.

[release_policy]: https://www.tarantool.io/en/doc/1.10/dev_guide/release_management/#release-policy
[issues]: https://github.com/tarantool/tarantool/issues

## Compatibility

Tarantool 1.10.x is backward compatible with Tarantool 1.9.x in binary data
layout, client-server protocol and replication protocol.

Please [upgrade][upgrade] using the `box.schema.upgrade()` procedure to unlock
all the new features of the 1.10.x series.

[upgrade]: https://www.tarantool.io/en/doc/1.10/book/admin/upgrades/

## Functionality added or changed

### Build

* Support fedora-35 build. (gh-6692)

## Bugs fixed

### Core

* 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).
* Now inserting a tuple with the wrong "id" field into the \_priv space will
  return the correct error (gh-6295).
* 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.
* Fixed a crash when tarantool is launched with multiple -e or -l options
  without a space between the option and the value (gh-5747).

### 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).

### Replication

* Fixed replicas failing to bootstrap when master is just re-started (gh-6966).

### 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 to `lj-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).

### Box

* Add iterator type checking and allow to pass iterator as a box.index.{ALL,GT,...} directly (gh-6501).

### Recovery

* When `force_recovery` cfg option is set, Tarantool is able to boot from
  `snap`/`xlog` combinations where `xlog` covers changes committed both before
  and after `snap` creation. For example, `0...0.xlog`, covering everything up
  to vclock `{1: 15}` and `0...09.snap`, corresponding to `vclock `{1: 9}` (gh-6794).
