Skip to content

Commit fe91d43

Browse files
p7novxuniq
andauthored
Add 2.10.1 release notes (#3073)
Resolves #3070 Co-authored-by: Kseniia Antonova <[email protected]>
1 parent 1f5d88a commit fe91d43

File tree

7 files changed

+365
-14
lines changed

7 files changed

+365
-14
lines changed

conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
project = u'Tarantool'
5454

5555
# |release| The full version, including alpha/beta/rc tags.
56-
release = "2.10.0"
56+
release = "2.10.1"
5757
# |version| The short X.Y version.
5858
version = '.'.join(release.split('.')[0:2])
5959

doc/release/2.10.0.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,8 @@ Schema
477477
- ``is_multikey`` option may now be passed to
478478
``box.schema.func.create`` directly, without ``opts`` sub-table.
479479

480+
.. _2.10.0-sql:
481+
480482
SQL
481483
~~~
482484

@@ -1193,6 +1195,8 @@ Box
11931195
- Added iterator type checking and allow passing iterator as a
11941196
``box.index.{ALL,GT,...}`` directly (:tarantool-issue:`6501`).
11951197

1198+
.. _2.10.0-datetime:
1199+
11961200
Datetime
11971201
~~~~~~~~
11981202

doc/release/2.10.1.rst

Lines changed: 342 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,342 @@
1+
Tarantool 2.10.1
2+
================
3+
4+
Released on 2022-08-08.
5+
6+
* Release: :tarantool-release:`2.10.1`.
7+
* Tag: ``2.10.1``.
8+
9+
10+
Overview
11+
--------
12+
13+
2.10.1 is the second
14+
:doc:`stable </release/policy/>` version of the 2.10 release series.
15+
It introduces 17 improvements and resolves 52 bugs since 2.10.0.
16+
17+
The “stable” label means that we have all planned features implemented
18+
and we see no high-impact issues. However, if you encounter an issue,
19+
feel free to `report it <https://github.com/tarantool/tarantool/issues>`__ on GitHub.
20+
21+
Notable changes are:
22+
23+
- Interactive transactions are now possible in remote binary consoles.
24+
- Improved the string representation of datetime intervals.
25+
26+
Compatibility
27+
-------------
28+
29+
Tarantool 2.x is backward compatible with Tarantool 1.10.x in the binary
30+
data layout, client-server protocol, and replication protocol.
31+
32+
Please :doc:`upgrade </book/admin/upgrades>`
33+
using the ``box.schema.upgrade()`` procedure to unlock all the new
34+
features of the 2.x series.
35+
36+
Functionality added or changed
37+
------------------------------
38+
39+
Core
40+
~~~~
41+
42+
- **[Breaking change]** Conflicted transactions now throw the
43+
``Transaction has been aborted by conflict`` error on any CRUD
44+
operations until they are either rolled back (which will return no
45+
error) or committed (which will return the same error) (:tarantool-issue:`7240`).
46+
- Read-view transactions now become conflicted on attempts to perform
47+
DML statements immediately. Previously, this was detected only on the
48+
transaction preparation stage, that is, when calling ``box.commit``
49+
(:tarantool-issue:`7240`).
50+
- Interactive transactions are now possible in remote binary consoles
51+
(:tarantool-issue:`7413`).
52+
- It is now possible to omit ``space`` in declarations of foreign keys
53+
that refer to the same space (:tarantool-issue:`7200`).
54+
55+
Datetime
56+
~~~~~~~~
57+
58+
- Improved the string representation of datetime intervals. Now
59+
nanoseconds aren’t converted and attached to seconds; the intervals
60+
are displayed “as is”. Example:
61+
62+
.. code:: lua
63+
64+
local ival = date.interval.new{year = 12345, hour = 48, min = 3, sec = 1,
65+
nsec = 12345678}
66+
print(tostring(ival))
67+
68+
Before:
69+
70+
::
71+
72+
'+12345 years, 48 hours, 3 minutes, 1.012345678 seconds'
73+
74+
Now:
75+
76+
::
77+
78+
'+12345 years, 48 hours, 3 minutes, 1 seconds, 12345678 nanoseconds'
79+
80+
Decimal
81+
~~~~~~~
82+
83+
- Added C module API for decimals (:tarantool-issue:`7228`).
84+
- Added Lua/C accessors for decimals into the module API (:tarantool-issue:`7228`).
85+
86+
Tuple
87+
~~~~~
88+
89+
- Added the ``box_tuple_field_by_path()`` function into the module API.
90+
It allow the access to tuple fields from C code using a JSON path
91+
(:tarantool-issue:`7228`).
92+
93+
Build
94+
~~~~~
95+
96+
- Fedora 30, 31, 32, and 33 are no longer supported.
97+
- Ubuntu 20.10 (Groovy Gorilla) and 21.04 (Hirsute Hippo) are no longer
98+
supported.
99+
- Updated libcurl to version 7.84.0.
100+
- Updated OpenSSL used for static builds to version 1.1.1q.
101+
- Ubuntu 21.10 (Impish Indri) is no longer supported.
102+
- Updated Ncurses used for static builds to version 6.3-20220716 .
103+
- Updated Readline used for static builds to version 8.0p1.
104+
- Updated libyaml to the version with fixed stack overflows.
105+
- Updated zstd to version 1.5.2.
106+
- Updated zlib used for static builds to version 1.2.12.
107+
108+
Bugs fixed
109+
----------
110+
111+
Core
112+
~~~~
113+
114+
- Improved validation of incoming tuples. Now tuples coming over the
115+
network can’t contain malformed decimals, uuids, or datetime values
116+
(:tarantool-issue:`6857`).
117+
118+
- Fixed a bug in the net.box connector because of which a client could
119+
fail to close its connection when receiving a shutdown request from
120+
the server. This could lead to the server hanging on exit (:tarantool-issue:`7225`).
121+
122+
- Fixed a crash and possible undefined behaviour when using ``scalar``
123+
and ``number`` indexes over fields containing both decimals and
124+
double ``Inf`` or ``NaN``.
125+
126+
For vinyl spaces, the above conditions could lead to wrong ordering
127+
of indexed values. To fix the issue, recreate the indexes on such
128+
spaces following this
129+
`guide <https://github.com/tarantool/tarantool/wiki/Fix-wrong-order-of-decimals-and-doubles-in-indices>`__
130+
(:tarantool-issue:`6377`).
131+
132+
- Fixed a bug because of which a net.box connection was not properly
133+
terminated when the process had a child (for example, started with
134+
``popen``) sharing the connection socket fd. The bug could lead to a
135+
server hanging on exit while executing the graceful shutdown protocol
136+
(:tarantool-issue:`7256`).
137+
138+
- Removed an assertion on ``fiber_wakeup()`` calls with dead fibers in
139+
debug builds. Such behavior was inconsistent with release builds, in
140+
which the same calls were allowed (:tarantool-issue:`5843`).
141+
142+
- Fixed the ``exclude_null`` index option not working for multikey and
143+
JSON indexes (:tarantool-issue:`5861`).
144+
145+
- Fixed the performance degradation of fiber backtrace collection after
146+
the backtrace rework (:tarantool-issue:`7207`).
147+
148+
- Fixed a hang when a synchronous request was issued from a net.box
149+
``on_connect`` or ``on_schema_reload`` trigger. Now an error is
150+
raised instead (:tarantool-issue:`5358`).
151+
152+
- Fixed a crash that could happen on x86 systems without the ``RDTSCP``
153+
instruction (:tarantool-issue:`5869`).
154+
155+
- Fixed a bug that allowed to access indexed fields of nested tuples
156+
with ``[*]`` in Lua (:tarantool-issue:`5226`).
157+
158+
- Fixed the behavior of ``space_object:fselect()`` on binary data
159+
(:tarantool-issue:`7040`).
160+
161+
- Fixed Tarantool not being able to recover from old snapshots when
162+
``box.cfg.work_dir`` and ``box.cfg.memtx_dir`` were both set
163+
(:tarantool-issue:`7232`).
164+
165+
- Fixed Tarantool terminations on error messages with invalid UTF-8
166+
sequences (:tarantool-issue:`6781` and :tarantool-issue:`6934`).
167+
168+
- Fixed a bug when the ``Transaction is active at return from function``
169+
error was overwriting expression evaluation errors in case the
170+
expression begins a transaction (:tarantool-issue:`7288`).
171+
172+
- Added type checking for options in net.box’s remote queries and
173+
connect method. Now graceful errors are thrown in case of incorrect
174+
options (:tarantool-issue:`6063`, :tarantool-issue:`6530`).
175+
176+
- Fixed ``space_object:format()`` and ``space_object.foreign_key``
177+
returning incorrect numbers of foreign key fields (:tarantool-issue:`7350`).
178+
179+
- Fixed the foreign key check on ``space_object:truncate()`` calls
180+
(:tarantool-issue:`7309`).
181+
182+
- Fixed a crash when ``box.stat.net.thread[i]`` is called with invalid
183+
``i`` values (:tarantool-issue:`7196`).
184+
185+
- Fixed a low-probability stack overflow bug in the qsort
186+
implementation.
187+
188+
Memtx
189+
~~~~~
190+
191+
- Fixed the ability to perform read-only operations in conflicting
192+
transactions in memtx, which led to spurious results (:tarantool-issue:`7238`).
193+
- Fixed false assertion on repeatable ``replace`` with the memtx
194+
transaction manager enabled (:tarantool-issue:`7214`).
195+
- Fixed false transaction conflict on repeatable ``insert``/``upsert``
196+
with the memtx transaction manager enabled (:tarantool-issue:`7217`).
197+
- Fixed dirty reads in the ``GT`` iterator of HASH indexes (:tarantool-issue:`7477`).
198+
- Fixed phantom reads in reverse iterators (:tarantool-issue:`7409`).
199+
- Fixed ``select`` with ``LE`` iterator in **memtx** **TREE** index
200+
returning deleted tuple (:tarantool-issue:`7432`).
201+
- Fixed incorrect handling of corner cases gap tracking in transaction
202+
manager (:tarantool-issue:`7375`).
203+
- Fixed a bug in the memtx hash index implementation that could lead to
204+
uncommitted data written to a snapshot file (:tarantool-issue:`7539`).
205+
206+
Vinyl
207+
~~~~~
208+
209+
- Fixed a bug in the vinyl upsert squashing optimization that could
210+
lead to a segmentation fault error (:tarantool-issue:`5080`).
211+
- Fixed a bug in the vinyl garbage collector. It could skip stale
212+
tuples stored in a secondary index if upsert operations were used on
213+
the space before the index was created (:tarantool-issue:`3638`).
214+
- Fixed a bug in the vinyl read iterator that could result in a
215+
significant performance degradation of range select requests in the
216+
presence of an intensive write workload (:tarantool-issue:`5700`).
217+
- Explicitly disabled the hot standby mode for vinyl. Now an attempt to
218+
enable the hot standby mode in case the master instance has vinyl
219+
spaces results in an error. Before this change, the behavior was
220+
undefined (:tarantool-issue:`6565`).
221+
222+
Replication
223+
~~~~~~~~~~~
224+
225+
- Added the logging of the error reason on a replica in case when the
226+
master didn’t send a greeting message (:tarantool-issue:`7204`).
227+
- Fixed replication being stuck occasionally for no obvious reasons.
228+
- Fixed a possible split-brain when the old synchro queue owner might
229+
finalize the transactions in the presence of the new owner (:tarantool-issue:`5295`).
230+
- Improved the detection of possible split-brain situations, for
231+
example, when multiple leaders were working independently due to
232+
manually lowered quorum. Once a node discovers that it received some
233+
foreign data, it immediately stops replication from such a node with
234+
an ``ER_SPLIT_BRAIN`` error (:tarantool-issue:`5295`).
235+
- Fixed a false positive split-brain error after ``box.ctl.demote()``
236+
(:tarantool-issue:`7286`).
237+
- Fixed a bug when followers with ``box.cfg.election_mode`` turned on
238+
did not notice the leader hang due to a long request, such as a
239+
``select{}`` from a large space or a ``pairs`` iteration without
240+
yields between loop cycles (:tarantool-issue:`7512`).
241+
242+
LuaJIT
243+
~~~~~~
244+
245+
Backported patches from vanilla LuaJIT trunk (:tarantool-issue:`6548` and :tarantool-issue:`7230`).
246+
In the scope of this activity, the following issues have been resolved:
247+
248+
- Fixed emitting for fuse load of constant in GC64 mode (:tarantool-issue:`4095`,
249+
:tarantool-issue:`4199`, :tarantool-issue:`4614`).
250+
251+
- Now initialization of zero-filled struct is compiled (:tarantool-issue:`4630`,
252+
:tarantool-issue:`5885`).
253+
254+
- Actually implemented ``maxirconst`` option for tuning JIT compiler.
255+
256+
- Fixed JIT stack of Lua slots overflow during recording for metamethod
257+
calls.
258+
259+
- Fixed bytecode dump unpatching for JLOOP in up-recursion compiled
260+
functions.
261+
262+
- Fixed FOLD rule for strength reduction of widening in cdata indexing.
263+
264+
- Fixed ``string.char()`` recording without arguments.
265+
266+
- Fixed ``print()`` behaviour with the reloaded default metatable for
267+
numbers.
268+
269+
- ``tonumber("-0")`` now saves the sign of number for conversion.
270+
271+
- ``tonumber()`` now gives predictable results for negative non-base-10
272+
numbers.
273+
274+
- Fixed write barrier for ``debug.setupvalue()`` and
275+
``lua_setupvalue()``.
276+
277+
- Fixed conflict between 64 bit lightuserdata and ITERN key for ARM64.
278+
279+
- Fixed emitting assembly for HREFK on ARM64.
280+
281+
- Fixed pass-by-value struct in FFI calls on ARM64.
282+
283+
- ``jit.p`` now flushes and closes output file after run, not at
284+
program exit.
285+
286+
- Fixed ``jit.p`` profiler interaction with GC finalizers.
287+
288+
- Fixed the case for partial recording of vararg function body with the
289+
fixed number of result values in with ``LJ_GC64`` (i.e. ``LJ_FR2``
290+
enabled) (:tarantool-issue:`7172`).
291+
292+
- Added ``/proc/self/exe`` symlink resolution to the symtab module to
293+
obtain the ``.symtab`` section for the Tarantool executable.
294+
295+
- Introduced stack sandwich support to sysprof’s parser (:tarantool-issue:`7244`).
296+
297+
- Disabled proto and trace information dumpers in sysprof’s default
298+
mode. Attempts to use them lead to a segmentation fault due to an
299+
uninitialized buffer (:tarantool-issue:`7264`).
300+
301+
- Fixed handling of errors during trace snapshot restore.
302+
303+
Lua
304+
~~~
305+
306+
- The ``fiber_obj:info()`` now correctly handles its options (:tarantool-issue:`7210`).
307+
- Fixed a bug when Ctrl+C doesn’t discard the multiline input
308+
(:tarantool-issue:`7109`).
309+
310+
SQL
311+
~~~
312+
313+
- Fixed the creation of ephemeral space format in ``ORDER BY``
314+
(:tarantool-issue:`7043`).
315+
- The result type of arithmetic operations between two unsigned values
316+
is now ``INTEGER`` (:tarantool-issue:`7295`).
317+
- Fixed a bug with the ``ANY`` type in the ephemeral space format in
318+
``ORDER BY`` (:tarantool-issue:`7043`).
319+
- Truncation of a space no longer corrupts prepared statements
320+
(:tarantool-issue:`7358`).
321+
322+
Datetime
323+
~~~~~~~~
324+
325+
- Fixed a bug when ``date:set{hour=nil,min=XXX}`` did not retain the
326+
original ``hour`` value (:tarantool-issue:`7298`).
327+
- Introduced the validation of incoming data at the moment messagepack
328+
is converted to datetime (:tarantool-issue:`6723`).
329+
330+
HTTP client
331+
~~~~~~~~~~~
332+
333+
- Enabled the automatic detection of system CA certificates in the
334+
runtime (:tarantool-issue:`7372`). It was disabled in 2.10.0, which led to the
335+
inability to use HTTPS without the ``verify_peer = false`` option.
336+
337+
338+
Build
339+
~~~~~
340+
341+
- Fixed a build failure with gcc if libpbf is installed (:tarantool-issue:`7292`).
342+
- Fixed the static build on Mac OS 11 and newer (:tarantool-issue:`7459`).

doc/release/_images/releases_calendar.svg

Lines changed: 1 addition & 1 deletion
Loading

doc/release/calendar.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ End of series support means the release series will no longer receive any patche
3030
- Release date
3131
- End of series support
3232

33+
* - :doc:`2.10.1 </release/2.10.1>`
34+
- August 8, 2022
35+
- Not planned yet
36+
3337
* - :doc:`2.10.0 </release/2.10.0>`
3438
- May 22, 2022
3539
- Not planned yet

0 commit comments

Comments
 (0)