Date: 2021-12-22

Tag: 1.10.12

## Overview

1.10.12 is the next stable release in the [long-term support (LTS)
version][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 3 improvements and resolves roughly 10
issues since the 1.10.11 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

### LuaJIT

* Introduced support for `LJ_DUALNUM` mode in luajit-gdb.py (gh-6224).

### Build

* Stop support of Ubuntu Trusty (14.04). (gh-6502)
* Bump debian package compatibility level to 10 (gh-5429).
  Bump minimal required debhelper to version 10 (except for Ubuntu Xenial).

## Bugs fixed

### Core

* Fixed a crash caused by a race between box.session.push() and closing
  connection (gh-6520).
* Fixed crash in case a fiber changing box.cfg.listen is woken up (gh-6480).
* Fixed box.cfg.listen not reverted to the old address
  in case the new one is invalid (gh-6092).

### Replication

* Fixed replica reconnecting to a living master on any `box.cfg{replication=...}`
  change. Such reconnects could lead to replica failing to restore connection
  for `replication_timeout` seconds (gh-4669).

### LuaJIT

* Fixed the order VM registers are allocated by LuaJIT frontend in case of
  `BC_ISGE` and `BC_ISGT` (gh-6227).
* Fixed inconsistency while searching for an error function when unwinding a C
  protected frame to handle a runtime error (e.g. an error in __gc handler).

### Lua

* When error is raised during encoding call results, auxiliary lightuserdata
  value is not removed from the main Lua coroutine stack. Prior to the fix it
  leads to undefined behaviour during the next usage of this Lua coroutine
  (gh-4617).
* Fixed Lua C API misuse, when the error is raised during call results encoding
  on unprotected coroutine and expected to be catched on the different one, that
  is protected (gh-6248).

#### Triggers

* Fixed possibility crash in case when trigger removes itself.
  Fixed possibility crash in case when someone destroy trigger,
  when it's yield (gh-6266).

### Build

* The Debian package does not depend on binutils anymore (gh-6699).
* Fix build errors with glibc-2.34 (gh-6686).

