| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 3.3.4 source code.tar.gz | 2025-11-21 | 9.5 MB | |
| 3.3.4 source code.zip | 2025-11-21 | 11.8 MB | |
| README.md | 2025-11-21 | 5.6 kB | |
| Totals: 3 Items | 21.3 MB | 0 | |
3.3.4
Date: 2025-11-21 Tag: 3.3.4
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 29 bugs since 3.3.3.
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.
Bugs fixed
Core
- Fixed the creation of broken snapshots, which could contain outdated entries
also applied in the following xlog files. This could happen if the
transactions would pile up and fill the whole WAL queue
(
box.cfg.wal_queue_max_sizewas reached), and a snapshot was created at this moment (gh-11180). - Transaction savepoint functions are now properly exported in the C API (gh-11731).
- Fixed a bug where
box.schema.downgradeto versions 2.11.5+ would erroneously set schema version to 2.11.1 instead of 2.11.5 (gh-11204). - Fixed a bug when the instance hung during transition to RW state after
promotion with a quorum greater than the number of registered instances in the
replicaset. Now the transition can be continued by reducing the
replication_synchro_quorumvalue (gh-11574). - Fixed key corruption when pagination by tuple was used (gh-11221).
- Fixed a bug of missed setting box error name in some cases (gh-10708).
- Fixed an issue when
tostring()is applied to an error raised insidebox.atomic()(gh-11823). - Fixed an issue where the predefined
replicationrole was not treated as a system role and therefore could be dropped or modified. Now it is properly protected like other system roles (guest,admin,public,super) (gh-11848). - Fixed a crash on reconnecting to syslog server (gh-11840).
- Fixed a crash when pagination was used on a
sysviewspace (gh-11953). - Fixed a crash when trying to use pagination along with the key in RTREE indexes (gh-11963).
Memtx
- Fixed a crash on OOM on insertion in tree index of memtx engine (gh-11788).
- Fixed an MVCC bug when a transaction performing insert-after-delete
with the same primary key (for example,
delete{4}followed byinsert{4, 3}) could create secondary key duplicates (gh-11686). - Fixed an MVCC bug when a transaction performing get-after-replace could dirty-read nothing (gh-11687).
- Fixed an MVCC bug that could lead to duplicates in secondary indexes after a rollback (gh-11660).
- Fixed an MVCC bug that could lead to dirty gap read in secondary indexes after a rollback (gh-11802).
- Fixed a crash when using the maximum allowed number of indexes with MVCC enabled (gh-11929).
Vinyl
- Fixed a bug when a WAL write error could lead to the violation of a unique
constraint in a space with the enabled
defer_deletesoption (gh-11969).
Replication
- Fixed a bug where
box.begin{txn_isolation = 'linearizable'}could crash when the max size of the synchronous transactions queue was reached (the settingbox.cfg.replication_synchro_queue_max_size) (gh-11807). - Fixed a false-positive assertion failure that could occur when calling
box.ctl.make_bootstrap_leader()during recovery (gh-11704). - Fixed the election state corruption after an anonymous replica becomes non-anonymous (gh-11938).
- Fixed a bug where a node configured with
election_mode = 'off'would prevent nodes withelection_mode = 'candidate'from starting new elections after the leader death (gh-12018). - Fixed a bug where the replication downstream could get stuck when the replica
had
box.cfg.replication_synchro_queue_max_sizeset to a smaller value than the master (gh-11836). - Fixed inconsistent data which could happen when the synchro queue was full
(
box.cfg.replication_synchro_queue_max_sizewas reached) and the transactions blocked on that queue were woken up or cancelled spuriously (for example, manually viafiber:wakeup()orfiber:cancel()). Specifically, transactions could get committed in a wrong order or newly joined replicas could have data not present on the master (gh-11180). - Fixed a bug that a snapshot file could contain an outdated synchronous replication's confirmation LSN or a term. That was only possible when the synchronous replication was used (gh-11754).
Lua
- Fixed a bug when a lot of "Connection refused" messages were
printed in the log file when a
net.boxconnection fails with thereconnect_afteroption (gh-10506). - Fixed a bug that caused incorrect display of string uri
parameters in returned uri of
uri.format(gh-11820).
Config
- Evaluate configurations for other cluster members lazily to speed up startup and reload of large configurations (500 instances or more).
- IPROTO SSL options can now be properly configured by specifying the
iproto.sslsection.