Skip to content

2.11.9

Choose a tag to compare

@sergepetrenko sergepetrenko released this 29 Apr 13:18
· 2984 commits to master since this release

2.11.9

Date: 2026-04-27
Tag: 2.11.9

Overview

2.x is the old stable release series. Users are encouraged to update to the
latest 3.x release.

This is a bugfix release. It resolves 34 issues since the previous
version.

Please consider the full list of user-visible changes below.

Compatibility

Tarantool 2.x and 3.x are compatible in terms of binary data layout,
client-server protocol, and replication protocol. This means that upgrades can
be performed with zero downtime for read requests and the order-of-network-lag
downtime for write requests.

Please follow the upgrade procedure to plan your update actions.

Tools

Introduced the misc.memprof.available and misc.sysprof.available flags to
determine whether the corresponding profiler is available for the current
Tarantool build (gh-12215).

Bugs fixed

Core

  • Fixed a bug when Tarantool could hang due to box.watch (gh-9632).
  • Fixed a bug where .xlog.inprogress files were not automatically deleted
    during server startup when wal_dir was set to a non-default value (gh-12081).
  • Introduced the new built-in system event box.wal_error that is broadcast
    whenever Tarantool fails to commit a transaction to the write-ahead log
    (gh-9405).
  • Fixed a bug where a local space could not be truncated when the _truncate
    space was synchronous (gh-12585).

Election

  • The leader now resigns upon the first encounter with an ER_WAL_IO write
    error (gh-9399).

LuaJIT

Backported patches from the vanilla LuaJIT trunk (gh-11691, gh-12134). The
following issues were fixed as part of this activity:

  • Fixed incorrect emission of IR_TBAR on aarch64.
  • Fixed stack overflow handling for trace exit.
  • Fixed dangling CType references.
  • Fixed VM state closure after early OOM.
  • Fixed emission of IR_MUL on x86/x64.
  • Fixed incorrect stp/ldp instructions fusion on aarch64.
  • Fixed SCEV entry invalidation when returning to a lower frame.
  • Fixed builds on macOS 15 / Clang 16.
  • Fixed emission of IR_HREFK on aarch64.
  • Added ffi.abi("dualnum").
  • Fixed stack checks in varargs calls in the GC64 build.
  • Fixed stack checks in pcall()/xpcall() in the GC64 build.
  • Fixed the allocation limit for the no-JIT build.
  • Fixed handling of OOM errors on stack resizing in coroutine.resume() and
    lua_checkstack().
  • Fixed recording of loops with a -0 step value or NaN control values.
  • Fixed error reporting when an error occurs during error handling.
  • Fixed a dangling reference for FFI callbacks.
  • Fixed BC_UNM for a -0 argument in dual-number mode.
  • Fixed narrowing of unary minus in dual-number mode.
  • Fixed recording of string.byte(), string.sub(), and string.find().
  • Fixed missing type conversion for BC_FORI slots in dual-number mode.
  • Fixed various corner cases in VM events.
  • Fixed constructor index resolution recording in the JIT compiler.
  • Fixed a UBSan warning in unpack().

Datetime

  • Fixed an assertion failure in an ambiguous case where both the day of year
    (yday, which implicitly defines the calendar month and month day) and the
    calendar month (without a month day) were defined in the date text. Such cases
    are now detected and an error is thrown (gh-11347).
  • Fixed tzoffset calculations for cases such as new({timestamp=x, tz='Zone'})
    (gh-12412).
  • Fixed inconsistency between dates produced by new({tzoffset=x})
    and d:set({tzoffset=x}) where d.tz ~= '' comes before set()
    (gh-7680, gh-12416).
  • Now datetime.new() and datetime_object:set()
    check that the timestamp value is within the valid range (gh-12147).
  • Fixed timestamp type checking in set() (gh-12411).

For backward compatibility, the `compat.datetime_setfn_timestamp_type_check``
option has been introduced. It's disabled by default for now ('old' behaviour),
which means no type check is performed. The 'new' behavior (with type check)
is planned to become the default in version 4.x.