Download Latest Version 2.11.8 source code.tar.gz (8.7 MB)
Email in envelope

Get an email when there's a new version of Tarantool

Home / 3.4.1
Name Modified Size InfoDownloads / Week
Parent folder
3.4.1 source code.tar.gz 2025-08-13 9.5 MB
3.4.1 source code.zip 2025-08-13 11.8 MB
README.md 2025-08-13 5.4 kB
Totals: 3 Items   21.3 MB 0

3.4.1

Date: 2025-08-12 Tag: 3.4.1

Overview

Tarantool 3.x is the recommended release series. Users of Tarantool 2.11 are encouraged to update to the latest 3.x release.

This release resolves 31 bugs since 3.4.0.

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

Compatibility

Tarantool 2.x and 3.x are compatible in the binary data layout, client-server protocol, and replication protocol. It means that the updating may 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.

Users of Tarantool 2.x may be interested in the compat options that allow to imitate some 2.x behavior. This allows to perform application code update step-by-step, not all-at-once.

Bugs fixed

Core

  • Fixed a bug where passwords are leaked into logs when using listen and bootstrap_leader options.
  • Now the server binds all URIs matching the listen parameter in the box configuration. Previously, it bound only a single URI per entry. Now, providing a single port number makes all interfaces be listened on that port. It is also possible now to bind multiple interfaces with a single port number (gh-7152).
  • Fixed the master node crash at processing anonymous requests with a nil instance uuid (gh-11531).
  • Fixed a crash, undefined behaviour, and inconsistent data across replicas that could all occur when the WAL queue was full (box.cfg.wal_queue_max_size was reached) and transactions blocked on that queue were woken up or cancelled spuriously (for example, manually via fiber:wakeup() or fiber:cancel()). (gh-11180).
  • Improved the calculation of waste_size in tuple:info() and space:stat() (gh-10217).
  • Fixed a bug when box.ctl.promote could hang if a candidate server got a message from a follower that the leader was already seen (gh-10836).
  • Fixed a bug when box.ctl.promote could crash if a candidate server lost and regained quorum during promotion (gh-10836).
  • Fixed a misleading error thrown on an attempt to revoke privileges from the 'admin' user and 'super' role (gh-11526).
  • Fixed reading after MsgPack end of an invalid interval MsgPack on decoding. Fixed checking bounds on decoding of year, month, week, and nanosecond, and adjusted the fields of the interval MsgPack (gh-10360).
  • Fixed a bug where tuples with JSON paths in a sequential field order could not be found in a hash index.
  • Fixed a bug when the box.schema.user.info() function could fail if a current user was granted with a non-public role (gh-10057).
  • Fixed a crash on an attempt to decode a malformed MsgPack extension with zero payload (gh-10361).

Memtx

  • Fixed crash/panic due to OOM conditions (gh-11171).
  • Fixed a bug when it was possible to commit the transaction even if the node became read-only (gh-9937).
  • Fixed a bug that caused the memtx MVCC to miss conflicts over key definitions that used the number type or collations (gh-10159, gh-11292).
  • Disallowed alteration of the primary index in a space with non-unique or nullable secondary indexes because such alters would crash Tarantool (gh-10951).
  • Fixed a bug when altering a multikey index and creating a new one over the same field could lead to a crash or undefined behavior (gh-11291).
  • Fixed a bug when the initial index size wasn't recorded in the MVCC, so no transaction conflict occurred if the index size changed during the transaction (gh-10149).

Replication

  • Fixed a bug when the node configured as box.cfg.bootstrap_mode = 'config'/'supervised'' didn't switch to the 'orphan' status even if it failed to synchronize with each of the connected nodes (gh-11156).
  • Fixed replication hanging in the relay thread when transmitting large tuples (more than several megabytes) (gh-11604).

LuaJIT

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

  • Fixed JIT slot overflow during recording of trace with up-recursion.
  • Fixed stack overflow handling.
  • Fixed potential file descriptor leaks in loadfile().
  • Fixed error generation in loadfile().
  • Fixed incorrect snapshot restore due to stack overflow.
  • Fixed assembling of IR SLOAD for the aarch64 architecture.
  • Fixed assembling of IR HREFK for the aarch64 architecture.
  • Fixed incorrect stp/ldp instructions fusion on aarch64.

Recovery

  • Fixed a bug where a master node that crashed and lost its xlog files for some reason might never get some of its own rows from upstreams after reconnecting. A new ro-reason "waiting_for_own_rows" was introduced for this. Now, until the instance has received all its rows, it is in this mode and remains read-only (gh-10592).

Tools

  • Fixed the sysprof crash (gh-11185, gh-11429) when a sample was collected outside the LuaJIT VM.
  • It is now possible to call LuaJIT's platform profile function misc.sysprof.report() during the profiling as well (gh-11229).
Source: README.md, updated 2025-08-13