Download Latest Version 3.8.0 source code.zip (12.1 MB)
Email in envelope

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

Home / 3.6.3
Name Modified Size InfoDownloads / Week
Parent folder
3.6.3 source code.tar.gz 2026-05-25 9.7 MB
3.6.3 source code.zip 2026-05-25 12.0 MB
README.md 2026-05-25 6.4 kB
Totals: 3 Items   21.7 MB 0

3.6.3

Date: 2026-05-25 Tag: 3.6.3

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 36 bugs since 3.6.2.

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 upgrade 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.

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 where box.ctl.promote() returned before the instance became writable (gh-10040).
  • Fixed a bug where .xlog.inprogress files were not automatically deleted during server startup if the wal_dir value was not the default (gh-12081).
  • Fixed a bug where a local space could not be truncated when the _truncate space was synchronous (gh-12585).
  • Connections introduced using box.session.new() are no longer dropped in the isolated mode (gh-12479).

Replication

  • Fixed a bug where the replication could get stuck upon receipt of a 'promote' entry from a newly elected leader. This was likely to happen when the receiver itself had been a leader not long ago and still had some transactions in the synchro queue not yet written to the journal (gh-12205).
  • Fixed a bug where a replica on subscribe could get stuck in the sync state for the duration of replication.timeout. This issue was observable in box.info.replication[...].upstream and could lead to temporary inconveniences, such as the inability to run box.ctl.promote() (when election_mode was not off) (gh-12025).

LuaJIT

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

  • 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 the dual-number mode.
  • Fixed narrowing of unary minus in the dual-number mode.
  • Fixed recording of string.byte(), string.sub(), and string.find().
  • Fixed missing type conversion for BC_FORI slots in the 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().
  • Fixed snapshot purge while recording a function header.

SQL

  • Fixed an integer overflow in the SQL built-in function PRINTF (ghs-161).
  • Fixed a segfault in the SQL built-in function REPLACE (ghs-160).
  • Removed the non-working ON CONFLICT clause for the NULL property in column definitions within CREATE TABLE statements (gh-12701).

Config

  • Fixed a startup failure when a Tarantool 3.x instance configured via the declarative config joined a 2.x replica set, where the master had no instance or replica set names stored in its snapshot (gh-10426).
  • Fixed a bug in the supervised bootstrap strategy when a replica could hang on startup while joining an already bootstrapped replica set (gh-11318).

Datetime

  • Fixed an assertion failure on an ambiguous case where day of year (yday, which defines calendar month and month day implicitly) and calendar month (without a month day) were both defined in the date text. Now such case is detected and an error is thrown (gh-11347).
  • Fixed tzoffset calculations for cases like 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 the timestamp value to be in the valid range (gh-12147).
  • Fixed timestamp type checking in set(). For backward compatibility the compat.datetime_setfn_timestamp_type_check option has been introduced. It's disabled by default for now ('old' behavior), which means no type check is performed. The 'new' behavior (with type check) is planned to be set as the default in version 4.x (gh-12411).
  • Fixed corruption of a datetime object by the set() function when an error occurs (gh-12171).

Election

  • Fixed a bug where a newly elected leader could become writable (box.info.ro is false) immediately after box.info.election.state == 'leader' but before it claimed the synchronous transactions queue (box.info.synchro.queue.owner is not this node). This could occur only when the synchronous queue was previously unclaimed, which typically happens on cluster startup (gh-12333).
  • Fixed a bug where a replica could crash or exhibit undefined behavior when the election leader sent this replica a synchronous replication control command (promotion or demotion), but the replica received it just before performing a cascading journal rollback. This could happen if the wal.queue_max_size setting was reached (gh-12557).

Uri

  • Fixed a Use-After-Poison crash in uri.format() caused by a long URI (ghs-151).
Source: README.md, updated 2026-05-25