|
| 1 | +Tarantool 2.10.5 |
| 2 | +================ |
| 3 | + |
| 4 | +Released on 2023-02-20. |
| 5 | + |
| 6 | +* Release: :tarantool-release:`2.10.5`. |
| 7 | +* Tag: ``2.10.5``. |
| 8 | + |
| 9 | +Overview |
| 10 | +-------- |
| 11 | + |
| 12 | +2.10.5 is the sixth |
| 13 | +:doc:`stable </release/policy/>` version of the 2.10 release series. |
| 14 | +It introduces 5 improvements and resolves 44 bugs since 2.10.4. |
| 15 | + |
| 16 | +The “stable” label means that we have all planned features implemented |
| 17 | +and we see no high-impact issues. However, if you encounter an issue, |
| 18 | +feel free to `report it <https://github.com/tarantool/tarantool/issues>`__ on GitHub. |
| 19 | + |
| 20 | +Compatibility |
| 21 | +------------- |
| 22 | + |
| 23 | +Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary |
| 24 | +data layout, client-server protocol, and replication protocol. |
| 25 | + |
| 26 | +Please :doc:`upgrade </book/admin/upgrades>` |
| 27 | +using the ``box.schema.upgrade()`` procedure to unlock all the new |
| 28 | +features of the 2.x series. |
| 29 | + |
| 30 | +Functionality added or changed |
| 31 | +------------------------------ |
| 32 | + |
| 33 | +Core |
| 34 | +~~~~ |
| 35 | + |
| 36 | +- Introduced the ``_vspace_sequence`` system space view of the |
| 37 | + ``_space_sequence`` system space (:tarantool-issue:`7858`). |
| 38 | +- The log produced during ``box.cfg{}`` now contains the build target |
| 39 | + triplet (for example, ``Linux-x86_64-RelWithDebInfo``). |
| 40 | + |
| 41 | +Build |
| 42 | +~~~~~ |
| 43 | + |
| 44 | +- OpenSUSE 15.1 and 15.2 are no longer supported. |
| 45 | +- Updated libcurl to version 7.87.0 (:tarantool-issue:`8150`). |
| 46 | +- Alpine Linux 3.16 is now supported. |
| 47 | + |
| 48 | +Bugs fixed |
| 49 | +---------- |
| 50 | + |
| 51 | +Core |
| 52 | +~~~~ |
| 53 | + |
| 54 | +- Fixed a bug in fiber switching that could lead to a segmentation |
| 55 | + fault error on AArch64 systems (:tarantool-issue:`7523`, :tarantool-issue:`7985`). |
| 56 | + |
| 57 | +- Fixed wrong CPU architecture reported in ``tarantool.build.target`` |
| 58 | + on M1/M2 Macs (:tarantool-issue:`7495`). |
| 59 | + |
| 60 | +- Fixed a bug when fields could be removed from a table stored in a |
| 61 | + variable when a logging function was called on this variable (for |
| 62 | + example, ``log.info(a)``) (:tarantool-issue:`3853`). |
| 63 | + |
| 64 | +- Fixed a logging bug: when logging tables with fields that have |
| 65 | + reserved internal names (such as ``pid``) in the plain log format, |
| 66 | + such fields weren’t logged (:tarantool-issue:`3853`). |
| 67 | + |
| 68 | +- Added the ``message`` field when logging tables without such field in |
| 69 | + the JSON log format (:tarantool-issue:`3853`). |
| 70 | + |
| 71 | +- Fixed an assertion on malformed JSON message written to the log |
| 72 | + (:tarantool-issue:`7955`). |
| 73 | + |
| 74 | +- Fixed the bug because of which ``box.session.on_auth`` triggers were |
| 75 | + not invoked if the authenticated user didn’t exist (:tarantool-issue:`8017`). |
| 76 | + |
| 77 | +- Eliminated the possibility of user enumeration by analyzing errors |
| 78 | + sent in reply to malformed authentication requests (:tarantool-sec-issue:`21`). |
| 79 | + |
| 80 | +- Fixed a bug when Tarantool could execute random bytes as a Lua code |
| 81 | + after fork on systems with a glibc version earlier than 2.29 |
| 82 | + (:tarantool-issue:`7886`). |
| 83 | + |
| 84 | +- A referenced space or a function being used in a constraint can now |
| 85 | + be dropped in the same transaction with the referencing constraint or |
| 86 | + space (:tarantool-issue:`7339`). |
| 87 | + |
| 88 | +- Fixed Tarantool being stuck during a crash on macOS (:tarantool-issue:`8023`). |
| 89 | + |
| 90 | +- Fixed a bug that prevented collection of crash reports (:tarantool-issue:`8083`). |
| 91 | + |
| 92 | +- Fixed a crash in ``net.box`` that happened if the error message |
| 93 | + raised by the server contained ``printf`` formatting specifiers, such |
| 94 | + as ``%d`` or ``%s`` (:tarantool-issue:`8043`). |
| 95 | + |
| 96 | +- Fixed read-only statements executing successfully in transactions |
| 97 | + that were aborted by yield or timeout. Now, read-only statements fail |
| 98 | + in this case, just like write statements (:tarantool-issue:`8123`). |
| 99 | + |
| 100 | +- Fixed a transaction conflict reported mistakenly when a key was |
| 101 | + deleted twice with MVCC engine enabled (:tarantool-issue:`8122`). |
| 102 | + |
| 103 | +- ``net.box`` connections now contain information about sequences used |
| 104 | + by remote spaces (:tarantool-issue:`7858`). |
| 105 | + |
| 106 | +- Fixed a crash that happened if a transaction was aborted (for |
| 107 | + example, by fiber yield with MVCC off) while the space’s |
| 108 | + ``on_replace`` or ``before_replace`` trigger was running (:tarantool-issue:`8027`). |
| 109 | + |
| 110 | +- Fixed a possible crash when attempting to update the same field in |
| 111 | + ``tuple/space/index:update()`` more than once (:tarantool-issue:`8216`). |
| 112 | + |
| 113 | +- Fixed empty BITSET indexes crashing on ``len`` calls (:tarantool-issue:`5809`). |
| 114 | + |
| 115 | +- Fixed a crash when functional indexes were used with very specific |
| 116 | + chunk size (:tarantool-issue:`6786`). |
| 117 | + |
| 118 | +Memtx |
| 119 | +~~~~~ |
| 120 | + |
| 121 | +- Fixed a possible repeatable read violation with reverse iterators |
| 122 | + (:tarantool-issue:`7755`). |
| 123 | +- Fixed a crash on series of transactions in memtx (:tarantool-issue:`7756`). |
| 124 | +- Fixed a phantom read that could happen after reads from different |
| 125 | + indexes followed by a rollback (:tarantool-issue:`7828`). |
| 126 | +- Fixed an assert in the MVCC engine (:tarantool-issue:`7945`). |
| 127 | +- Fixed an assertion failure in MVCC during statement preparation |
| 128 | + (:tarantool-issue:`8104`). |
| 129 | +- Fixed possible loss of a committed tuple after rollback of a prepared |
| 130 | + transaction (:tarantool-issue:`7930`). |
| 131 | + |
| 132 | +Vinyl |
| 133 | +~~~~~ |
| 134 | + |
| 135 | +- Fixed a bug that could result in ``select()`` skipping an existing |
| 136 | + tuple after a rolled back ``delete()`` (:tarantool-issue:`7947`). |
| 137 | + |
| 138 | +Replication |
| 139 | +~~~~~~~~~~~ |
| 140 | + |
| 141 | +- Fixed local space writes failing with error ``Found uncommitted sync |
| 142 | + transactions from other instance with id 1`` when synchronous |
| 143 | + transaction queue belongs to another instance and isn’t empty |
| 144 | + (:tarantool-issue:`7592`). |
| 145 | + |
| 146 | +- Fixed an assertion failure on master when a replica resubscribes with |
| 147 | + a smaller vclock than previously seen (:tarantool-issue:`5158`). |
| 148 | + |
| 149 | +- A warning is now raised when ``replica_id`` is changed by a |
| 150 | + ``before_replace`` trigger while adding a new replica. Previously, |
| 151 | + there was an assertion checking this (:tarantool-issue:`7846`). |
| 152 | + |
| 153 | +- Fixed a segmentation fault that happened when a ``before_replace`` |
| 154 | + trigger set on space ``_cluster`` returned nil (:tarantool-issue:`7846`). |
| 155 | + |
| 156 | +- Fixed possible transaction conflict errors on applying a replication |
| 157 | + stream (:tarantool-issue:`8121`). |
| 158 | + |
| 159 | +Raft |
| 160 | +~~~~ |
| 161 | + |
| 162 | +- Fixed an assertion failure in case when an election candidate is |
| 163 | + reconfigured to a voter during an ongoning WAL write (:tarantool-issue:`8169`). |
| 164 | +- Fixed nodes configured with ``election_mode = "manual"`` sometimes |
| 165 | + increasing the election term excessively after their promotion |
| 166 | + (:tarantool-issue:`8168`). |
| 167 | + |
| 168 | +LuaJIT |
| 169 | +~~~~~~ |
| 170 | + |
| 171 | +Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`7230`). In the scope of |
| 172 | +this activity, the following issues have been resolved: |
| 173 | + |
| 174 | +- Fix ``io.close()`` for already closed standard output. |
| 175 | +- Fix trace execution and stitching inside vmevent handler (:tarantool-issue:`6782`). |
| 176 | +- Fixed ``emit_loadi()`` on x86/x64 emitting xor between condition |
| 177 | + check and jump instructions. |
| 178 | +- Fix stack top for error message when raising the OOM error (:tarantool-issue:`3840`). |
| 179 | +- Enabled external unwinding on several LuaJIT platforms. Now it is |
| 180 | + possible to handle ABI exceptions from Lua code (:tarantool-issue:`6096`). |
| 181 | +- Disabled math.modf compilation due to its rare usage and difficulties |
| 182 | + with proper implementation of the corresponding JIT machinery. |
| 183 | +- Fixed inconsistent behaviour on signed zeros for JIT-compiled unary |
| 184 | + minus (:tarantool-issue:`6976`). |
| 185 | +- Fixed ``IR_HREF`` hash calculations for non-string GC objects for |
| 186 | + GC64. |
| 187 | +- Fixed assembling of type-check-only variant of ``IR_SLOAD``. |
| 188 | +- Enabled the platform profiler for Tarantool built with GC64 mode |
| 189 | + (:tarantool-issue:`7919`). |
| 190 | +- Added full-range lightuserdata support to the ``luajit-gdb.py`` |
| 191 | + extension (:tarantool-issue:`6481`). |
| 192 | + |
| 193 | +Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`8069`). In the scope of |
| 194 | +this activity, the following issues have been resolved: |
| 195 | + |
| 196 | +- Fixed loop realigment for dual-number mode |
| 197 | +- Fixed os.date() for wider libc strftime() compatibility. |
| 198 | +- Fix interval parsing for sysprof for dual-number mode. |
| 199 | + |
| 200 | +Lua |
| 201 | +~~~ |
| 202 | + |
| 203 | +- Fixed alias detection in the YAML serializer in case the input |
| 204 | + contains objects that implement the ``__serialize`` meta method |
| 205 | + (:tarantool-issue:`8240`). |
| 206 | + |
| 207 | +SQL |
| 208 | +~~~ |
| 209 | + |
| 210 | +- Fixed a bug when collation could change the type of a built-in |
| 211 | + function argument (:tarantool-issue:`7992`). |
| 212 | +- Fixed several bugs happening because of improper handling of |
| 213 | + ``malloc()`` failures (:tarantool-sec-issue:`65`, :tarantool-sec-issue:`66`, |
| 214 | + :tarantool-sec-issue:`67`, :tarantool-sec-issue:`68`). |
| 215 | + |
| 216 | +Box |
| 217 | +~~~ |
| 218 | + |
| 219 | +- Fixed a possible error during rollback of read-only transaction |
| 220 | + statements (:tarantool-issue:`5501`). |
| 221 | +- Fixed a bug in ``space_object:create_index()`` when ``collation`` |
| 222 | + option is not set. Now it is inherited from the space format |
| 223 | + (:tarantool-issue:`5104`). |
| 224 | +- Eliminated a code injection vulnerability in the processing of the |
| 225 | + ``replication_synchro_quorum`` ``box.cfg()`` option (:tarantool-sec-issue:`20`, |
| 226 | + `GHSA-74jr-2fq7-vp42 <https://github.com/tarantool/tarantool/security/advisories/GHSA-74jr-2fq7-vp42>`__). |
| 227 | + |
| 228 | +Datetime |
| 229 | +~~~~~~~~ |
| 230 | + |
| 231 | +- Fixed a segmentation fault that happened when the value passed to the |
| 232 | + ``%f`` modifier of ``datetime_object:format()`` was too big (:tarantool-sec-issue:`31`). |
| 233 | + |
| 234 | +Fiber |
| 235 | +~~~~~ |
| 236 | + |
| 237 | +- Fixed the assertion fail in ``cord_on_yield`` (:tarantool-issue:`6647`). |
| 238 | + |
| 239 | +Log |
| 240 | +~~~ |
| 241 | + |
| 242 | +- Fixed an incorrect facility value in syslog on Alpine and OpenBSD |
| 243 | + (:tarantool-issue:`8269`). |
| 244 | + |
| 245 | +.. _build-1: |
| 246 | + |
| 247 | +Build |
| 248 | +~~~~~ |
| 249 | + |
| 250 | +- Fixed ``-Werror`` build fail on Clang 15 (:tarantool-issue:`8110`). |
0 commit comments