diff --git a/changelogs/2.10.3.md b/changelogs/2.10.3.md new file mode 100644 index 0000000000000000000000000000000000000000..8225f9a232fb1499f0c026e55222c924e13b9236 --- /dev/null +++ b/changelogs/2.10.3.md @@ -0,0 +1,103 @@ +Date: 2022-09-30 +Tag: 2.10.3 + +## Overview + +2.10.3 is the 4th [stable][release_policy] version of the 2.10 release +series. It introduces 2 improvements and resolves 19 bugs since +2.10.2. + +The "stable" label means that we have all planned features implemented and we +see no high-impact issues. However, if you encounter an issue, feel free to +[report it][issues] on GitHub. + +[release_policy]: https://www.tarantool.io/en/doc/latest/dev_guide/release_management/#release-policy +[issues]: https://github.com/tarantool/tarantool/issues + +## Compatibility + +Tarantool 2.x is backward compatible with Tarantool 1.10.x in the 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 2.x series. + +[upgrade]: https://www.tarantool.io/en/doc/latest/book/admin/upgrades/ + +## Functionality added or changed + +### Build + +* RedOS 7.3 is now supported. +* Added the `-DENABLE_HARDENING=ON/OFF` CMake option that enables hardening + against memory corruption attacks (gh-7536). + +## Bugs fixed + +### Core + +* Fixed a bug introduced in Tarantool 2.10.2: log messages + could be written to data files thus causing data corruption. + The issue was fixed by reverting the fix for gh-4450. +* Switched from MT-Unsafe `strerror()` to MT-Safe `strerror_r()`. The usage + of the unsafe function could result in corrupted error messages. +* Fixed a bug when a single JSON update couldn't insert and update a field of a map or + an array in two sequential calls. It would either crash or return an error (gh-7705). + +### Memtx + +* Fixed incorrect handling of transaction conflicts in full scans + by HASH indexes (gh-7493). +* Fixed `use after free` that could occur in the transaction manager + in certain states (gh-7449). +* Fixed possible phantom reads with `get` on TREE indexes containing + nullable parts (gh-7685). +* Fixed an inconsistency in `index:random` in the context of transaction management + (gh-7670). +* Fixed unserializable reads tracked incorrectly after transaction rollbacks + (gh-7343). + +### Replication + +* Fixed a bug when a fiber committing a synchronous transaction could hang if + the instance got a term bump during that or its synchro-queue was fenced in + any other way (gh-7253). +* Fixed master occasionally deleting xlogs needed by replicas even without a + restart (gh-7584). + +### Raft + +* Fixed a bug when `box.ctl.promote()` could hang and bump thousands of terms in + a row if called on more than one node at the same time (part of gh-7253). +* Fixed a bug when a node with `election_mode='voter'` could hang in + `box.ctl.promote()` or become a leader (part of gh-7253). +* Fixed a bug when a replicaset could be split into parts if a node voted + for another instance while having local WAL writes unfinished (part of gh-7253). + +### Lua + +#### Merger + +* Fixed `use after free` that could occur during iteration over `merge_source:pairs()` or + `merger:pairs()` (gh-7657). + +#### Popen + +* Fixed a race condition in `<popen handle>:signal()` on Mac OS 12 and newer (gh-7658). + +### Box + +* Fixed a bug when `fiber.yield()` might break the execution of a shutdown + trigger (gh-7434). +* Fixed a possible high CPU usage caused by shutdown triggers (gh-6801). + +### Synchro + +* Fixed assertions in debug builds and undefined behaviour in release builds + when simultaneous elections started or another instance was promoted while + an instance was acquiring or releasing the synchro queue (gh-7086). + +### Uri + +* Fixed a bug in the URI parser: tarantoolctl could not + connect when the host name was skipped (gh-7479). diff --git a/changelogs/unreleased/add-redos-7.3-ci-cd.md b/changelogs/unreleased/add-redos-7.3-ci-cd.md deleted file mode 100644 index 9b3dd42f0ba8d8424584998aa09584c3cd16e063..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/add-redos-7.3-ci-cd.md +++ /dev/null @@ -1,3 +0,0 @@ -## feature/build - -* RedOS 7.3 is now supported. diff --git a/changelogs/unreleased/gh-4450-logger-sigsegv-revert.md b/changelogs/unreleased/gh-4450-logger-sigsegv-revert.md deleted file mode 100644 index a74d50f1c4c5b6901cf5c700e499ddc8f5e6cb53..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-4450-logger-sigsegv-revert.md +++ /dev/null @@ -1,5 +0,0 @@ -## bugfix/core - -* Fixed a bug introduced in Tarantool 2.10.2: log messages - could be written to data files thus causing data corruption. - The issue was fixed by reverting the fix for gh-4450. diff --git a/changelogs/unreleased/gh-6801-high-cpu-usage-by-on_shutdown-triggers.md b/changelogs/unreleased/gh-6801-high-cpu-usage-by-on_shutdown-triggers.md deleted file mode 100644 index 8e9146fb787c968b9b33b44953e209d317f671ea..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-6801-high-cpu-usage-by-on_shutdown-triggers.md +++ /dev/null @@ -1,3 +0,0 @@ -## bugfix/box - -* Fixed a possible high CPU usage caused by shutdown triggers (gh-6801). diff --git a/changelogs/unreleased/gh-7086-box_issue_promote_demote_asserts.md b/changelogs/unreleased/gh-7086-box_issue_promote_demote_asserts.md deleted file mode 100644 index 5b918270874b48182fb99945788437b3960f849d..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7086-box_issue_promote_demote_asserts.md +++ /dev/null @@ -1,5 +0,0 @@ -## bugfix/synchro - -* Fixed assertions in debug builds and undefined behaviour in release builds - when simultaneous elections started or another instance was promoted while - an instance was acquiring or releasing the synchro queue (gh-7086). diff --git a/changelogs/unreleased/gh-7253-fiber-hang-on-fencing.md b/changelogs/unreleased/gh-7253-fiber-hang-on-fencing.md deleted file mode 100644 index 118d537e725c7de95a6a4d9d17ca6d4512f4bd65..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7253-fiber-hang-on-fencing.md +++ /dev/null @@ -1,5 +0,0 @@ -## bugfix/replication - -* Fixed a bug when a fiber committing a synchronous transaction could hang if - the instance got a term bump during that or its synchro-queue was fenced in - any other way (gh-7253). diff --git a/changelogs/unreleased/gh-7253-split-brain-early-vote.md b/changelogs/unreleased/gh-7253-split-brain-early-vote.md deleted file mode 100644 index c91e59711242fb8ed36e7afafb2c09802a377551..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7253-split-brain-early-vote.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/raft - -* Fixed a bug when a replicaset could be split into parts if a node voted - for another instance while having local WAL writes unfinished (gh-7253). diff --git a/changelogs/unreleased/gh-7343-unserializable-read-tracked-incorrectly-after-rollback.md b/changelogs/unreleased/gh-7343-unserializable-read-tracked-incorrectly-after-rollback.md deleted file mode 100644 index bc04ba88ed82bdc56600c50ee0db4a4e3942ec83..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7343-unserializable-read-tracked-incorrectly-after-rollback.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/memtx - -* Fixed unserializable reads tracked incorrectly after transaction rollbacks - (gh-7343). diff --git a/changelogs/unreleased/gh-7434-yield-in-on_shutdown-trigger.md b/changelogs/unreleased/gh-7434-yield-in-on_shutdown-trigger.md deleted file mode 100644 index 82bbf8c32142850e59fe9bde01ae054dd99ecb44..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7434-yield-in-on_shutdown-trigger.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/box - -* Fixed a bug when `fiber.yield()` might break the execution of a shutdown - trigger (gh-7434). diff --git a/changelogs/unreleased/gh-7449-tuple-is-dirty-assertion-on-replace.md b/changelogs/unreleased/gh-7449-tuple-is-dirty-assertion-on-replace.md deleted file mode 100644 index eae87ab44feb2a244edfb07b2a6b4ccd2fc47b45..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7449-tuple-is-dirty-assertion-on-replace.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/memtx - -* Fixed `use after free` that could occur in the transaction manager - in certain states (gh-7449). diff --git a/changelogs/unreleased/gh-7493-memtx-hash-idx-repeatable-read-violation.md b/changelogs/unreleased/gh-7493-memtx-hash-idx-repeatable-read-violation.md deleted file mode 100644 index 5d3e26fef3dced11093c75659c2a4788858c2f7c..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7493-memtx-hash-idx-repeatable-read-violation.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/memtx - -* Fixed incorrect handling of transaction conflicts in full scans - by HASH indexes (gh-7493). diff --git a/changelogs/unreleased/gh-7536-add-cmake-enable_hardening-option.md b/changelogs/unreleased/gh-7536-add-cmake-enable_hardening-option.md deleted file mode 100644 index 573474d64ad26513506a583ba7aed8a7b7778e5f..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7536-add-cmake-enable_hardening-option.md +++ /dev/null @@ -1,4 +0,0 @@ -## feature/build - -* Added the `-DENABLE_HARDENING=ON/OFF` CMake option that enables hardening - against memory corruption attacks (gh-7536). diff --git a/changelogs/unreleased/gh-7584-missing-xlog-fix.md b/changelogs/unreleased/gh-7584-missing-xlog-fix.md deleted file mode 100644 index 39c199f54081190b72ea4e3b1853af743aecfcab..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7584-missing-xlog-fix.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/replication - -* Fixed master occasionally deleting xlogs needed by replicas even without a - restart (gh-7584). diff --git a/changelogs/unreleased/gh-7670-memtx-tx-manager-idx-rand-inconsistency.md b/changelogs/unreleased/gh-7670-memtx-tx-manager-idx-rand-inconsistency.md deleted file mode 100644 index 3977aab33e97ff7c1668bbeaea4379d681ec13d6..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7670-memtx-tx-manager-idx-rand-inconsistency.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/memtx - -* Fixed an inconsistency in `index:random` in the context of transaction management - (gh-7670). diff --git a/changelogs/unreleased/gh-7685-memtx-tree-idx-get-with-nullable-field-phantom-read.md b/changelogs/unreleased/gh-7685-memtx-tree-idx-get-with-nullable-field-phantom-read.md deleted file mode 100644 index 7b27ae3dd20647cbc3b6a88b6d67c82d31a9c77b..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7685-memtx-tree-idx-get-with-nullable-field-phantom-read.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/memtx - -* Fixed possible phantom reads with `get` on TREE indexes containing - nullable parts (gh-7685). diff --git a/changelogs/unreleased/gh-7705-json-update-crash.md b/changelogs/unreleased/gh-7705-json-update-crash.md deleted file mode 100644 index 9f1551d1c411887fa370ee5fa73d3517b495e81a..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/gh-7705-json-update-crash.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/core - -* Fixed a bug when a single JSON update couldn't insert and update a field of a map or - an array in two sequential calls. It would either crash or return an error (gh-7705). diff --git a/changelogs/unreleased/igrishnov/gh-7479-bug-fix-uri-lib.md b/changelogs/unreleased/igrishnov/gh-7479-bug-fix-uri-lib.md deleted file mode 100644 index d493f2f195e2cc0a6827c769e9dcb577991121f8..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/igrishnov/gh-7479-bug-fix-uri-lib.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/uri - -* Fixed a bug in the URI parser: tarantoolctl could not - connect when the host name was skipped (gh-7479). diff --git a/changelogs/unreleased/merger-use-after-free-in-gen.md b/changelogs/unreleased/merger-use-after-free-in-gen.md deleted file mode 100644 index 5288733f1e8f56e58cf1a95b85b7600d7ebd3b6e..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/merger-use-after-free-in-gen.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/lua/merger - -* Fixed `use after free` that could occur during iteration over `merge_source:pairs()` or - `merger:pairs()` (gh-7657). diff --git a/changelogs/unreleased/popen-mac-os-race.md b/changelogs/unreleased/popen-mac-os-race.md deleted file mode 100644 index c831e5854c2b2bef426d64a420ab2a56de886a55..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/popen-mac-os-race.md +++ /dev/null @@ -1,3 +0,0 @@ -## bugfix/lua/popen - -* Fixed a race condition in `<popen handle>:signal()` on Mac OS 12 and newer (gh-7658). diff --git a/changelogs/unreleased/promote-hang.md b/changelogs/unreleased/promote-hang.md deleted file mode 100644 index b8693b852182aedb158c3379f64b96120153ed1e..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/promote-hang.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/raft - -* Fixed a bug when a node with `election_mode='voter'` could hang in - `box.ctl.promote()` or become a leader. diff --git a/changelogs/unreleased/promote-multiple-infinite.md b/changelogs/unreleased/promote-multiple-infinite.md deleted file mode 100644 index 663225ca094586b573d3b90ac38e64d1c4ee1cf2..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/promote-multiple-infinite.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/raft - -* Fixed a bug when `box.ctl.promote()` could hang and bump thousands of terms in - a row if called on more than one node at the same time. diff --git a/changelogs/unreleased/strerror-mt-safe.md b/changelogs/unreleased/strerror-mt-safe.md deleted file mode 100644 index a6aef93d497eb4bc3375858c307722ddfc0d554c..0000000000000000000000000000000000000000 --- a/changelogs/unreleased/strerror-mt-safe.md +++ /dev/null @@ -1,4 +0,0 @@ -## bugfix/core - -* Switched from MT-Unsafe `strerror()` to MT-Safe `strerror_r()`. The usage - of the unsafe function could result in corrupted error messages.