From f3da7bf2956e3cf45dbf9b5ab83924f989e7aa48 Mon Sep 17 00:00:00 2001 From: mar Date: Mon, 1 Jun 2026 15:12:59 +0300 Subject: [PATCH 1/5] doc: create new changelog format --- doc/release/enterprise-changelog.rst | 129 +++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/doc/release/enterprise-changelog.rst b/doc/release/enterprise-changelog.rst index 3479d639db..c33a60b8b2 100644 --- a/doc/release/enterprise-changelog.rst +++ b/doc/release/enterprise-changelog.rst @@ -18,6 +18,135 @@ For example: ``2.11.1-0-gc42d9735b-r589``. - ``TARANTOOL_BASE_VERSION`` is the Community version which the Enterprise version is based on. - ``REVISION`` is the SDK revision. Besides Tarantool itself, it includes the ``tt`` utility, a set of open and closed source modules, and examples. Learn more from :ref:`Package contents `. +r708 +---- + +В релизе обновлены ключевые зависимости платформы: Tarantool до 2.11.9, модуль metrics до 1.7.0, +а также утилита tt-ee до 2.12.0, в которой завершается активная разработка ветки v2.x. +Дополнительно обновлён модуль ``graphqlapi-helpers`` до 0.0.11-1. + +Tarantool 2.11.8 -> 2.11.9 +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Это bugfix-релиз: исправлено 34 проблемы с предыдущей версии. + +* Версия 2.x — старая стабильная ветка; рекомендуется обновляться до 3.x. +* Совместимость: Tarantool 2.x и 3.x совместимы с точки зрения формата бинарных данных, клиент-серверного протокола и протокола репликации. +Это означает, что обновление можно выполнить без простоя для операций чтения, а для операций записи простой будет порядка сетевой задержки (см. `upgrade procedure `__). + +Далее перечислены изменения, видимые пользователю: + + +Tools +^^^^^ + +* Добавлены флаги ``misc.memprof.available`` и ``misc.sysprof.available`` для + определения доступности соответствующего профайлера в текущей сборке. + +Core +^^^^ + +* Исправлена ошибка, из-за которой Tarantool мог зависать из-за ``box.watch``. +* Исправлена ошибка, при которой файлы ``.xlog.inprogress`` не удалялись + автоматически во время запуска сервера, если ``wal_dir`` был задан не + значением по умолчанию. +* Добавлено новое встроенное системное событие ``box.wal_error``, которое + рассылается каждый раз, когда Tarantool не удаётся зафиксировать (commit) + транзакцию в журнале предзаписи (WAL). +* Исправлена ошибка, при которой локальный space нельзя было очистить + (truncate), если space ``_truncate`` был синхронным (synchronous). + +Election +^^^^^^^^ + +* Если при записи в WAL возникает ``ER_WAL_IO``, текущий лидер при первом же + таком случае отказывается от роли лидера. + +LuaJIT +^^^^^^ + +* Исправлена некорректная генерация ``IR_TBAR`` на aarch64. +* Исправлена обработка переполнения стека при выходе из trace. +* Исправлены «висячие» ссылки на ``CType``. +* Исправлено закрытие состояния VM после раннего OOM. +* Исправлена генерация ``IR_MUL`` на x86/x64. +* Исправлено некорректное объединение (fusion) инструкций ``stp``/``ldp`` на + aarch64. +* Исправлена инвалидизация записи SCEV при возврате в более низкий фрейм. +* Исправлена сборка на macOS 15 / Clang 16. +* Исправлена генерация ``IR_HREFK`` на aarch64. +* Добавлено ``ffi.abi("dualnum")``. +* Исправлены проверки стека в varargs-вызовах в сборке GC64. +* Исправлены проверки стека в ``pcall()``/``xpcall()`` в сборке GC64. +* Исправлен лимит аллокаций для сборки без JIT. +* Исправлена обработка ошибок OOM при расширении стека в ``coroutine.resume()`` + и ``lua_checkstack()``. +* Исправлена запись (recording) циклов со значением шага ``-0`` или управляющими + значениями ``NaN``. +* Исправлено формирование сообщений об ошибках, когда ошибка возникает во время + обработки ошибки. +* Исправлена «висячая» ссылка для FFI callback. +* Исправлен ``BC_UNM`` для аргумента ``-0`` в режиме dual-number. +* Исправлено сужение (narrowing) унарного минуса в режиме dual-number. +* Исправлена запись (recording) ``string.byte()``, ``string.sub()`` и + ``string.find()``. +* Исправлено отсутствие преобразования типов для слотов ``BC_FORI`` в режиме + dual-number. +* Исправлены различные пограничные случаи в VM events. +* Исправлена запись разрешения индекса конструктора в JIT-компиляторе. +* Исправлено предупреждение UBSan в ``unpack()``. + +Datetime +^^^^^^^^ + +* Исправлено падение из-за срабатывания ``assert`` при разборе неоднозначной + даты: когда в тексте одновременно указаны день года (``yday``, который + неявно задаёт месяц и день месяца) и календарный месяц (без дня месяца). + Теперь такие случаи распознаются, и выбрасывается ошибка. +* Исправлены вычисления ``tzoffset`` для случаев вида + ``new({timestamp=x, tz='Zone'})``. +* Исправлена неконсистентность между датами, создаваемыми + ``new({tzoffset=x})``, и ``d:set({tzoffset=x})``, когда ``d.tz ~= ''`` идёт + перед ``set()``. +* Теперь ``datetime.new()`` и ``datetime_object:set()`` проверяют, что значение + timestamp находится в допустимом диапазоне. +* Исправлена проверка типа timestamp в ``set()``. + +Для обратной совместимости добавлена опция +``compat.datetime_setfn_timestamp_type_check``. Сейчас она по умолчанию +выключена («старое» поведение), то есть проверка типа не выполняется. «Новое» +поведение (с проверкой типа) планируется сделать значением по умолчанию в +версии 4.x. + + +metrics 1.6.2 → 1.7.0 +~~~~~~~~~~~~~~~~~~~~~ + +* ``graphite``: добавлена возможность отправлять метрики на несколько серверов. +* Совместимость: обратная совместимость с предыдущей версией плагина сохранена. +* Изменения в поведении: + + - ``init`` теперь присваивает уникальное имя создаваемому файберу ``fiber`` на основе входных опций ``graphite server`` (если переданы). + - добавлен метод ``stop()`` для остановки всех файберов ``fibers``, запущенных плагином. + + +tt-ee v2.11.4 -> v2.12.0 +~~~~~~~~~~~~~~~~~~~~~~~~ + +Этот maintenance-релиз отмечает завершение активной разработки ветки v2.x. + +* Исправления, выявленные CVE-линтерами. +* ``tt pack``: добавлена поддержка вложенных файлов ``.packignore`` в корне + окружения tt. +* ``tt status``: добавлена опция ``--format`` для вывода в форматах JSON и YAML + (машиночитаемый вывод). + + +graphqlapi-helpers +~~~~~~~~~~~~~~~~~~ + +* Обновление модуля ``graphqlapi-helpers`` с 0.0.9-1 на 0.0.11-1. Новая версия работает без зависимостей от ``ddl-ee`` and ``crud-ee``. + r703 ---- From 6f22b5206dbd03f9f66c47edfb19459ffde97f69 Mon Sep 17 00:00:00 2001 From: "m.lichko" Date: Tue, 4 Aug 2026 13:41:54 +0300 Subject: [PATCH 2/5] doc: corrections --- doc/release/enterprise-changelog.rst | 211 +++++++++++++++++++-------- 1 file changed, 152 insertions(+), 59 deletions(-) diff --git a/doc/release/enterprise-changelog.rst b/doc/release/enterprise-changelog.rst index c33a60b8b2..e7f2724be0 100644 --- a/doc/release/enterprise-changelog.rst +++ b/doc/release/enterprise-changelog.rst @@ -21,109 +21,169 @@ For example: ``2.11.1-0-gc42d9735b-r589``. r708 ---- -В релизе обновлены ключевые зависимости платформы: Tarantool до 2.11.9, модуль metrics до 1.7.0, -а также утилита tt-ee до 2.12.0, в которой завершается активная разработка ветки v2.x. -Дополнительно обновлён модуль ``graphqlapi-helpers`` до 0.0.11-1. +В релизе обновлены ключевые зависимости платформы: Tarantool до 2.11.9, модуль ``metrics`` до 1.7.0, +а также утилита tt-ee до 2.12.0. Дополнительно обновлён модуль ``graphqlapi-helpers`` до 0.0.11-1. -Tarantool 2.11.8 -> 2.11.9 +Tarantool 2.11 -> 2.11.9 ~~~~~~~~~~~~~~~~~~~~~~~~~~ Это bugfix-релиз: исправлено 34 проблемы с предыдущей версии. * Версия 2.x — старая стабильная ветка; рекомендуется обновляться до 3.x. * Совместимость: Tarantool 2.x и 3.x совместимы с точки зрения формата бинарных данных, клиент-серверного протокола и протокола репликации. -Это означает, что обновление можно выполнить без простоя для операций чтения, а для операций записи простой будет порядка сетевой задержки (см. `upgrade procedure `__). + Это означает, что обновление можно выполнить без простоя для операций чтения, а для операций записи простой будет порядка сетевой задержки (см. `upgrade procedure `__). -Далее перечислены изменения, видимые пользователю: - - -Tools -^^^^^ +LuaJIT memory and platform profilers +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Добавлены флаги ``misc.memprof.available`` и ``misc.sysprof.available`` для определения доступности соответствующего профайлера в текущей сборке. + Подробнее про профайлеры в разделах `LuaJIT memory profiler `__ и `LuaJIT platform profiler `__. Core ^^^^ -* Исправлена ошибка, из-за которой Tarantool мог зависать из-за ``box.watch``. -* Исправлена ошибка, при которой файлы ``.xlog.inprogress`` не удалялись - автоматически во время запуска сервера, если ``wal_dir`` был задан не - значением по умолчанию. -* Добавлено новое встроенное системное событие ``box.wal_error``, которое - рассылается каждый раз, когда Tarantool не удаётся зафиксировать (commit) +**Добавлено:** + +* Новое встроенное системное событие ``box.wal_error``, которое + рассылается каждый раз, когда Tarantool не удаётся зафиксировать транзакцию в журнале предзаписи (WAL). -* Исправлена ошибка, при которой локальный space нельзя было очистить - (truncate), если space ``_truncate`` был синхронным (synchronous). -Election -^^^^^^^^ +**Исправлено:** + +* Ошибка, из-за которой Tarantool мог зависать при использовании ``box.watch``. +* Ошибка, при которой файлы ``.xlog.inprogress`` не удалялись + автоматически во время запуска сервера, если ``wal_dir`` задан и отличается от значения по умолчанию. +* Ошибка, при которой локальный спейс нельзя было очистить + (truncate), если спейс ``_truncate`` настроен как синхронный (synchronous). + + +Выбор лидера +^^^^^^^^^^^^ * Если при записи в WAL возникает ``ER_WAL_IO``, текущий лидер при первом же - таком случае отказывается от роли лидера. + таком случае отказывается от своей роли. LuaJIT ^^^^^^ -* Исправлена некорректная генерация ``IR_TBAR`` на aarch64. -* Исправлена обработка переполнения стека при выходе из trace. -* Исправлены «висячие» ссылки на ``CType``. -* Исправлено закрытие состояния VM после раннего OOM. -* Исправлена генерация ``IR_MUL`` на x86/x64. -* Исправлено некорректное объединение (fusion) инструкций ``stp``/``ldp`` на +**Добавлено:** + +* Поддержка ``ffi.abi("dualnum")`` для определения режима LuaJIT (dual-number: различение целых int64 и double). + +**Исправлено:** + +* Некорректная генерация ``IR_TBAR`` на aarch64. +* Обработка переполнения стека при выходе из trace. +* «Висячие» ссылки на ``CType``. +* Закрытие состояния VM после раннего OOM. +* Генерация ``IR_MUL`` на x86/x64. +* Некорректное объединение инструкций ``stp``/ ``ldp`` на aarch64. -* Исправлена инвалидизация записи SCEV при возврате в более низкий фрейм. -* Исправлена сборка на macOS 15 / Clang 16. -* Исправлена генерация ``IR_HREFK`` на aarch64. -* Добавлено ``ffi.abi("dualnum")``. -* Исправлены проверки стека в varargs-вызовах в сборке GC64. -* Исправлены проверки стека в ``pcall()``/``xpcall()`` в сборке GC64. -* Исправлен лимит аллокаций для сборки без JIT. -* Исправлена обработка ошибок OOM при расширении стека в ``coroutine.resume()`` +* Инвалидизация записи SCEV при возврате в более низкий фрейм. +* Сборка на macOS 15/Clang 16. +* Генерация ``IR_HREFK`` на aarch64. +* Проверки стека в varargs-вызовах в сборке GC64. +* Проверки стека в ``pcall()``/ ``xpcall()`` в сборке GC64. +* Лимит аллокаций для сборки без JIT. +* Обработка ошибок OOM при расширении стека в ``coroutine.resume()`` и ``lua_checkstack()``. -* Исправлена запись (recording) циклов со значением шага ``-0`` или управляющими +* Запись (recording) циклов со значением шага ``-0`` или управляющими значениями ``NaN``. -* Исправлено формирование сообщений об ошибках, когда ошибка возникает во время +* Формирование сообщений об ошибках, когда ошибка возникает во время обработки ошибки. -* Исправлена «висячая» ссылка для FFI callback. -* Исправлен ``BC_UNM`` для аргумента ``-0`` в режиме dual-number. -* Исправлено сужение (narrowing) унарного минуса в режиме dual-number. -* Исправлена запись (recording) ``string.byte()``, ``string.sub()`` и +* «Висячая» ссылка для FFI callback. +* ``BC_UNM`` для аргумента ``-0`` в режиме ``dual-number``. +* Сужение (narrowing) унарного минуса в режиме ``dual-number``. +* Запись (recording) ``string.byte()``, ``string.sub()`` и ``string.find()``. -* Исправлено отсутствие преобразования типов для слотов ``BC_FORI`` в режиме - dual-number. -* Исправлены различные пограничные случаи в VM events. -* Исправлена запись разрешения индекса конструктора в JIT-компиляторе. -* Исправлено предупреждение UBSan в ``unpack()``. +* Отсутствие преобразования типов для слотов ``BC_FORI`` в режиме + ``dual-number``. +* Различные пограничные случаи в ``VM events``. +* Запись разрешения индекса конструктора в JIT-компиляторе. +* Предупреждение UBSan в ``unpack()``. -Datetime -^^^^^^^^ +Модуль Datetime +^^^^^^^^^^^^^^^ + +**Исправлено:** -* Исправлено падение из-за срабатывания ``assert`` при разборе неоднозначной +* Падение из-за срабатывания ``assert`` при разборе неоднозначной даты: когда в тексте одновременно указаны день года (``yday``, который неявно задаёт месяц и день месяца) и календарный месяц (без дня месяца). Теперь такие случаи распознаются, и выбрасывается ошибка. -* Исправлены вычисления ``tzoffset`` для случаев вида +* Вычисления ``tzoffset`` для случаев вида ``new({timestamp=x, tz='Zone'})``. -* Исправлена неконсистентность между датами, создаваемыми +* Неконсистентность между датами, создаваемыми ``new({tzoffset=x})``, и ``d:set({tzoffset=x})``, когда ``d.tz ~= ''`` идёт перед ``set()``. * Теперь ``datetime.new()`` и ``datetime_object:set()`` проверяют, что значение - timestamp находится в допустимом диапазоне. -* Исправлена проверка типа timestamp в ``set()``. + ``timestamp`` находится в допустимом диапазоне. +* Проверка типа ``timestamp`` в ``set()``. Для обратной совместимости добавлена опция ``compat.datetime_setfn_timestamp_type_check``. Сейчас она по умолчанию выключена («старое» поведение), то есть проверка типа не выполняется. «Новое» -поведение (с проверкой типа) планируется сделать значением по умолчанию в -версии 4.x. +поведение с проверкой типа планируется сделать значением по умолчанию в версии 4.x. + +.. note:: + + Ниже приведены модули, затронутые изменениями в этом релизе. + Отсутствие модуля означает, что обновления для него не выпускались. + + +crud 1.6.1 → 1.7.5 +~~~~~~~~~~~~~~~~~~ + +**Добавлено:** + +* Метод ``crud.locate()`` для определения, где находится кортеж — в движке memtx или vinyl. Работает для спейсов, управляемых enterprise-модулем ``cooler``. +* В ``crud.len`` добавлена поддержка опций: ``mode``, ``balance``, ``prefer_replica``, ``request_timeout``. +* ``safe mode``, предотвращающий запись данных в неверный набор реплик во время ребалансировки vshard. +* Метрика ``tnt_crud_router_cache_clear_ts``, помогающая корректно отключать ``safe mode`` в кластере. +* Автоматическое переключение в ``safe mode`` при старте ребалансировки. +* Возможность вручную вернуть ``fast mode``. +* Метрика ``tnt_crud_storage_nil_bucket_id_compat_total`` для отслеживания операций, выполненных без ``bucket_ref`` (режим совместимости со старыми роутерами). + +**Исправлено:** + +* Операции только для чтения (``get``, ``select``, ``pairs``, ``count``, ``min``, ``max``) теперь выполняются через здоровые реплики, даже если все мастера в кластере недоступны. +* Совместимость узлов хранилища с роутерами версии < 1.7.0: в ``get``, ``update``, ``delete`` корректно обрабатывается ``bucket_id = nil``. В этом случае storage пропускает ``bucket referencing`` и пишет ``rate-limited`` предупреждение о сниженной безопасности ребаланса во время rolling upgrade. +* Ошибка ``bucket_ref`` в методах ``crud.*_many`` теперь возвращается в виде массива. +* Вызов ``bucket_unref`` вынесен из транзакции. +* Предотвращено создание дублирующихся метрик при повторном вызове ``init``. +* Предотвращено создание дублирующихся триггеров на спейсe ``_crud_settings_local`` при повторном вызове ``init``. +* Взаимная блокировка в ``crud.schema()`` после ошибки перезагрузки схемы. +* Удалена метрика ``tnt_crud_storage_safe_mode_enabled`` с роутера. +* Убрана обёртка ``wrap_box_space_func_result`` для сокращения аллокаций и ускорения вызовов узла хранилища. +**Изменено:** + +* При переключении в ``safe mode`` прекращена практика пометки/остановки iproto файберов fast mode; корректность операций на узле хранилища проверяется через ``yield_checks`` в тестах. +* Переключение в safe mode перенесено с триггера ``on_commit`` на ``on_replace``. +* Спейсы на движке vinyl всегда работают в ``safe mode``. + +vshard 0.1.37 → 0.1.39 +~~~~~~~~~~~~~~~~~~~~~~ + +Версия 0.1.39 полностью совместима с предыдущими версиями vshard. + +**Добавлено:** + +* Возможность отключать ограничитель частоты логирования (log rate limiter) через модуль ``consts``. + +**Исправлено:** + +* Проблема, из‑за которой старый мастер не мог обнаружить нового мастера в пределах набора реплик. +* Утечка соединений: соединение не освобождалось сборщиком мусора после реконфигурации или перезагрузки. +* Ограничение транзакций при работе с ``_bucket``: ранее ``on_commit``‑триггер на ``_bucket`` блокировал запись в другие спейсы в + рамках той же транзакции (например, из ``on_replace``‑триггеров). Теперь такие сценарии разрешены — в ``on_commit`` пропускаются изменения, относящиеся к «чужим» спейсам. metrics 1.6.2 → 1.7.0 ~~~~~~~~~~~~~~~~~~~~~ * ``graphite``: добавлена возможность отправлять метрики на несколько серверов. -* Совместимость: обратная совместимость с предыдущей версией плагина сохранена. +* Обратная совместимость с предыдущей версией плагина сохранена. * Изменения в поведении: - ``init`` теперь присваивает уникальное имя создаваемому файберу ``fiber`` на основе входных опций ``graphite server`` (если переданы). @@ -133,8 +193,6 @@ metrics 1.6.2 → 1.7.0 tt-ee v2.11.4 -> v2.12.0 ~~~~~~~~~~~~~~~~~~~~~~~~ -Этот maintenance-релиз отмечает завершение активной разработки ветки v2.x. - * Исправления, выявленные CVE-линтерами. * ``tt pack``: добавлена поддержка вложенных файлов ``.packignore`` в корне окружения tt. @@ -142,10 +200,45 @@ tt-ee v2.11.4 -> v2.12.0 (машиночитаемый вывод). +cartridge 2.16.4 → 2.16.6 +~~~~~~~~~~~~~~~~~~~~~~~~~ + +**Изменено:** + +* На странице кода дерево файлов больше не раскрывается автоматически по умолчанию. +* Зависимость ``vshard`` до версии 0.1.39. +* Зависимость ``membership`` до версии 2.5.3. +* Зависимость ``cartridge-metrics-role`` до версии 0.1.3. +* Зависимость ``graphql`` до версии 0.3.1. +* Ззависимость ``http`` до версии 1.9.0. + +**Исправлено:** + +* Мониторинг синхронных спейсов с учётом фактического режима ``failover``: + предупреждение о синхронных спейсах теперь пишется в журнад только если ``failover`` настроен в режиме, который их не поддерживает (например, ``eventual`` или ``stateful`` без ``synchro_mode``), а не всегда при старте экземпляра; + в модуль ``cartridge.failover`` добавлена функция ``is_sync_spaces_supported()``; синхронные спейсы теперь определяются динамически, включая спейсы, добавленные во время работы. + +http 1.8.0 → 1.9.0 +~~~~~~~~~~~~~~~~~~ + +**Добавлено:** + +* Опция ``ssl_verify_client`` . + +**Исправлено:** + +* Сервер больше не пересоздаётся, если его адрес и порт не изменились. +* Применение параметров сервера при перезагрузке конфигурации: сервер больше не остаётся без изменений после обновления настроек. + +**Несовместимое изменение (Breaking change):** + +* При указании ``ca_file`` взаимная TLS-аутентификация (mTLS) теперь включается по умолчанию. + + graphqlapi-helpers ~~~~~~~~~~~~~~~~~~ -* Обновление модуля ``graphqlapi-helpers`` с 0.0.9-1 на 0.0.11-1. Новая версия работает без зависимостей от ``ddl-ee`` and ``crud-ee``. +* Обновление модуля ``graphqlapi-helpers`` с 0.0.9-1 на 0.0.11-1. Новая версия работает без зависимостей от ``ddl-ee`` и ``crud-ee``. r703 From fb252f940712730ab146fe8ff2c5674cd3c833ee Mon Sep 17 00:00:00 2001 From: "m.lichko" Date: Thu, 6 Aug 2026 13:52:07 +0300 Subject: [PATCH 3/5] doc: corrections --- doc/release/enterprise-changelog.rst | 61 ++++++++++++++++------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/doc/release/enterprise-changelog.rst b/doc/release/enterprise-changelog.rst index e7f2724be0..ab1b04b97b 100644 --- a/doc/release/enterprise-changelog.rst +++ b/doc/release/enterprise-changelog.rst @@ -15,30 +15,26 @@ A :ref:`Tarantool Enterprise SDK ` version consists of two For example: ``2.11.1-0-gc42d9735b-r589``. -- ``TARANTOOL_BASE_VERSION`` is the Community version which the Enterprise version is based on. +- ``TARANTOOL_BASE_VERSION`` is the Enterprise version. - ``REVISION`` is the SDK revision. Besides Tarantool itself, it includes the ``tt`` utility, a set of open and closed source modules, and examples. Learn more from :ref:`Package contents `. r708 ---- -В релизе обновлены ключевые зависимости платформы: Tarantool до 2.11.9, модуль ``metrics`` до 1.7.0, -а также утилита tt-ee до 2.12.0. Дополнительно обновлён модуль ``graphqlapi-helpers`` до 0.0.11-1. +В релизе обновлены ключевые зависимости платформы: Tarantool 2.11.9 — bugfix‑релиз ветки 2.11, +ориентированный на повышение стабильности и предсказуемости работы. +В релизе улучшены диагностика и реакция на ошибки WAL, устранены зависания и проблемы обслуживания WAL‑файлов в Core, +а также внесён большой набор исправлений в LuaJIT и модуль Datetime. +Дополнительно обновлены и доработаны ключевые компоненты экосистемы (CRUD, vshard, metrics, tt-ee, cartridge, http, graphqlapi-helpers), +включая улучшения безопасной работы при ребалансировке, отказоустойчивого чтения и изменения в TLS/mTLS‑настройках HTTP. -Tarantool 2.11 -> 2.11.9 +Tarantool 2.11.8 -> 2.11.9 ~~~~~~~~~~~~~~~~~~~~~~~~~~ -Это bugfix-релиз: исправлено 34 проблемы с предыдущей версии. +Это bugfix-релиз: исправлено 34 проблемы с версии 2.11.8 (r702). -* Версия 2.x — старая стабильная ветка; рекомендуется обновляться до 3.x. -* Совместимость: Tarantool 2.x и 3.x совместимы с точки зрения формата бинарных данных, клиент-серверного протокола и протокола репликации. - Это означает, что обновление можно выполнить без простоя для операций чтения, а для операций записи простой будет порядка сетевой задержки (см. `upgrade procedure `__). - -LuaJIT memory and platform profilers -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -* Добавлены флаги ``misc.memprof.available`` и ``misc.sysprof.available`` для - определения доступности соответствующего профайлера в текущей сборке. - Подробнее про профайлеры в разделах `LuaJIT memory profiler `__ и `LuaJIT platform profiler `__. +* Версия 2.x — предыдущая стабильная ветка; рекомендуется обновляться до 3.x. +* Чтобы обновиться с Tarantool 2.x на 3.x см. `процедуру обновления `__. Core ^^^^ @@ -47,15 +43,15 @@ Core * Новое встроенное системное событие ``box.wal_error``, которое рассылается каждый раз, когда Tarantool не удаётся зафиксировать - транзакцию в журнале предзаписи (WAL). + транзакцию в журнале предзаписи (WAL) (`gh-12585 `__). **Исправлено:** -* Ошибка, из-за которой Tarantool мог зависать при использовании ``box.watch``. +* Ошибка, из-за которой Tarantool мог зависать при использовании ``box.watch`` (`gh-9632 `__). * Ошибка, при которой файлы ``.xlog.inprogress`` не удалялись - автоматически во время запуска сервера, если ``wal_dir`` задан и отличается от значения по умолчанию. + автоматически во время запуска сервера, если ``wal_dir`` задан и отличается от значения по умолчанию (`gh-12081 `__). * Ошибка, при которой локальный спейс нельзя было очистить - (truncate), если спейс ``_truncate`` настроен как синхронный (synchronous). + (truncate), если спейс ``_truncate`` настроен как синхронный (synchronous) (`gh-12585 `__). Выбор лидера @@ -70,6 +66,9 @@ LuaJIT **Добавлено:** * Поддержка ``ffi.abi("dualnum")`` для определения режима LuaJIT (dual-number: различение целых int64 и double). +* Добавлены флаги ``misc.memprof.available`` и ``misc.sysprof.available`` для + определения доступности соответствующего профайлера в текущей сборке. + Подробнее про профайлеры в разделах `LuaJIT memory profiler `__ и `LuaJIT platform profiler `__. **Исправлено:** @@ -103,6 +102,7 @@ LuaJIT * Запись разрешения индекса конструктора в JIT-компиляторе. * Предупреждение UBSan в ``unpack()``. + Модуль Datetime ^^^^^^^^^^^^^^^ @@ -111,7 +111,7 @@ LuaJIT * Падение из-за срабатывания ``assert`` при разборе неоднозначной даты: когда в тексте одновременно указаны день года (``yday``, который неявно задаёт месяц и день месяца) и календарный месяц (без дня месяца). - Теперь такие случаи распознаются, и выбрасывается ошибка. + Теперь такие случаи распознаются, и отображается ошибка. * Вычисления ``tzoffset`` для случаев вида ``new({timestamp=x, tz='Zone'})``. * Неконсистентность между датами, создаваемыми @@ -135,6 +135,12 @@ LuaJIT crud 1.6.1 → 1.7.5 ~~~~~~~~~~~~~~~~~~ +.. note:: + + Начиная с CRUD 1.6.0 закрыта уязвимость, позволявшая выполнять операции, на которые у пользователя не было прав. + Теперь CRUD строго соблюдает права доступа: пользователь может выполнять только те действия, которые разрешены его привилегиями. + Если приложению требуется доступ к служебным спейсам, соответствующие права необходимо выдавать явно. + **Добавлено:** * Метод ``crud.locate()`` для определения, где находится кортеж — в движке memtx или vinyl. Работает для спейсов, управляемых enterprise-модулем ``cooler``. @@ -206,11 +212,13 @@ cartridge 2.16.4 → 2.16.6 **Изменено:** * На странице кода дерево файлов больше не раскрывается автоматически по умолчанию. -* Зависимость ``vshard`` до версии 0.1.39. -* Зависимость ``membership`` до версии 2.5.3. -* Зависимость ``cartridge-metrics-role`` до версии 0.1.3. -* Зависимость ``graphql`` до версии 0.3.1. -* Ззависимость ``http`` до версии 1.9.0. +* Зависимости: + + - ``vshard`` с версии 0.1.37 до 0.1.39 (изменения см. выше). + - ``membership`` c версии 2.5.2 до 2.5.3. Обновлена версия CMake, чтобы избежать проблем совместимости с CMake 4.x. + - ``cartridge-metrics-role`` с версии 0.1.1 до 0.1.3. Обновлена версия CMake, чтобы избежать проблем совместимости с CMake 4.x. Исправлен CI: обновлена версия Ubuntu; вместо ``tarantoolctl`` теперь используется ``tt``. + - ``graphql`` с версии 0.3.0 до 0.3.1. ``luagraphqlparser`` обновлен до версии 0.2.1. + - ``http`` с версии 1.8.0 до 1.9.0 (изменения см. ниже). **Исправлено:** @@ -238,7 +246,8 @@ http 1.8.0 → 1.9.0 graphqlapi-helpers ~~~~~~~~~~~~~~~~~~ -* Обновление модуля ``graphqlapi-helpers`` с 0.0.9-1 на 0.0.11-1. Новая версия работает без зависимостей от ``ddl-ee`` и ``crud-ee``. +* Обновление модуля ``graphqlapi-helpers`` с 0.0.9-1 на 0.0.11-1. + Новая версия работает без зависимостей от ``ddl-ee`` и ``crud-ee``. r703 From fc34ecc91554329a465c00fc5da78c8c78a79001 Mon Sep 17 00:00:00 2001 From: "m.lichko" Date: Thu, 6 Aug 2026 20:04:47 +0300 Subject: [PATCH 4/5] doc: corrections --- doc/release/enterprise-changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release/enterprise-changelog.rst b/doc/release/enterprise-changelog.rst index ab1b04b97b..385f8bb8e5 100644 --- a/doc/release/enterprise-changelog.rst +++ b/doc/release/enterprise-changelog.rst @@ -25,7 +25,7 @@ r708 ориентированный на повышение стабильности и предсказуемости работы. В релизе улучшены диагностика и реакция на ошибки WAL, устранены зависания и проблемы обслуживания WAL‑файлов в Core, а также внесён большой набор исправлений в LuaJIT и модуль Datetime. -Дополнительно обновлены и доработаны ключевые компоненты экосистемы (CRUD, vshard, metrics, tt-ee, cartridge, http, graphqlapi-helpers), +Дополнительно обновлены и доработаны ключевые компоненты экосистемы (CRUD, ``vshard``, ``metrics``, ``tt-ee``, ``cartridge``, ``http``, ``graphqlapi-helpers``), включая улучшения безопасной работы при ребалансировке, отказоустойчивого чтения и изменения в TLS/mTLS‑настройках HTTP. Tarantool 2.11.8 -> 2.11.9 From 22254b68dff8bf4b048ba3b2f9b9b2f4ceb5227b Mon Sep 17 00:00:00 2001 From: "m.lichko" Date: Tue, 11 Aug 2026 14:51:00 +0300 Subject: [PATCH 5/5] doc: corrections --- doc/release/enterprise-changelog.rst | 30 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/doc/release/enterprise-changelog.rst b/doc/release/enterprise-changelog.rst index 385f8bb8e5..d12cb6b260 100644 --- a/doc/release/enterprise-changelog.rst +++ b/doc/release/enterprise-changelog.rst @@ -25,7 +25,7 @@ r708 ориентированный на повышение стабильности и предсказуемости работы. В релизе улучшены диагностика и реакция на ошибки WAL, устранены зависания и проблемы обслуживания WAL‑файлов в Core, а также внесён большой набор исправлений в LuaJIT и модуль Datetime. -Дополнительно обновлены и доработаны ключевые компоненты экосистемы (CRUD, ``vshard``, ``metrics``, ``tt-ee``, ``cartridge``, ``http``, ``graphqlapi-helpers``), +Дополнительно обновлены и доработаны ключевые компоненты экосистемы (``crud``, ``vshard``, ``metrics``, ``tt-ee``, ``cartridge``, ``http``, ``graphqlapi-helpers``), включая улучшения безопасной работы при ребалансировке, отказоустойчивого чтения и изменения в TLS/mTLS‑настройках HTTP. Tarantool 2.11.8 -> 2.11.9 @@ -73,7 +73,7 @@ LuaJIT **Исправлено:** * Некорректная генерация ``IR_TBAR`` на aarch64. -* Обработка переполнения стека при выходе из trace. +* Обработка переполнения стека при выходе из трассировки. * «Висячие» ссылки на ``CType``. * Закрытие состояния VM после раннего OOM. * Генерация ``IR_MUL`` на x86/x64. @@ -128,8 +128,8 @@ LuaJIT .. note:: - Ниже приведены модули, затронутые изменениями в этом релизе. - Отсутствие модуля означает, что обновления для него не выпускались. + Ниже приведены модули, в которых произошли изменения. + Если модуль не указан в списке ниже, то обновления для него не выпускались. crud 1.6.1 → 1.7.5 @@ -145,16 +145,16 @@ crud 1.6.1 → 1.7.5 * Метод ``crud.locate()`` для определения, где находится кортеж — в движке memtx или vinyl. Работает для спейсов, управляемых enterprise-модулем ``cooler``. * В ``crud.len`` добавлена поддержка опций: ``mode``, ``balance``, ``prefer_replica``, ``request_timeout``. -* ``safe mode``, предотвращающий запись данных в неверный набор реплик во время ребалансировки vshard. -* Метрика ``tnt_crud_router_cache_clear_ts``, помогающая корректно отключать ``safe mode`` в кластере. -* Автоматическое переключение в ``safe mode`` при старте ребалансировки. -* Возможность вручную вернуть ``fast mode``. +* ``safe mode`` – безопасный режим, предотвращающий запись данных в неверный набор реплик во время ребалансировки vshard. +* Метрика ``tnt_crud_router_cache_clear_ts``, помогающая корректно отключать безопасный режим в кластере. +* Автоматическое переключение в безопасный режим при старте ребалансировки. +* Возможность вручную вернуть быстрый режим (``fast mode``). * Метрика ``tnt_crud_storage_nil_bucket_id_compat_total`` для отслеживания операций, выполненных без ``bucket_ref`` (режим совместимости со старыми роутерами). **Исправлено:** -* Операции только для чтения (``get``, ``select``, ``pairs``, ``count``, ``min``, ``max``) теперь выполняются через здоровые реплики, даже если все мастера в кластере недоступны. -* Совместимость узлов хранилища с роутерами версии < 1.7.0: в ``get``, ``update``, ``delete`` корректно обрабатывается ``bucket_id = nil``. В этом случае storage пропускает ``bucket referencing`` и пишет ``rate-limited`` предупреждение о сниженной безопасности ребаланса во время rolling upgrade. +* Операции только для чтения (``get``, ``select``, ``pairs``, ``count``, ``min``, ``max``) теперь выполняются через здоровые реплики, даже если все мастер-узлы в кластере недоступны. +* Совместимость узлов хранилища с роутерами версии < 1.7.0: в ``get``, ``update``, ``delete`` корректно обрабатывается ``bucket_id = nil``. В этом случае хранилище пропускает ``bucket referencing`` и пишет ``rate-limited`` предупреждение о сниженной безопасности ребаланса во время обновления без простоя (*rolling upgrade*). * Ошибка ``bucket_ref`` в методах ``crud.*_many`` теперь возвращается в виде массива. * Вызов ``bucket_unref`` вынесен из транзакции. * Предотвращено создание дублирующихся метрик при повторном вызове ``init``. @@ -165,9 +165,9 @@ crud 1.6.1 → 1.7.5 **Изменено:** -* При переключении в ``safe mode`` прекращена практика пометки/остановки iproto файберов fast mode; корректность операций на узле хранилища проверяется через ``yield_checks`` в тестах. -* Переключение в safe mode перенесено с триггера ``on_commit`` на ``on_replace``. -* Спейсы на движке vinyl всегда работают в ``safe mode``. +* При переключении в безопасный режим прекращена практика пометки/остановки iproto файберов в быстром режиме; корректность операций на узле хранилища проверяется через ``yield_checks`` в тестах. +* Переключение в безопасный режим перенесено с триггера ``on_commit`` на ``on_replace``. +* Спейсы на движке vinyl всегда работают в безопасном режиме. vshard 0.1.37 → 0.1.39 ~~~~~~~~~~~~~~~~~~~~~~ @@ -180,7 +180,7 @@ vshard 0.1.37 → 0.1.39 **Исправлено:** -* Проблема, из‑за которой старый мастер не мог обнаружить нового мастера в пределах набора реплик. +* Проблема, из‑за которой старый мастер-узел не мог обнаружить новый мастер-экземпляр в пределах набора реплик. * Утечка соединений: соединение не освобождалось сборщиком мусора после реконфигурации или перезагрузки. * Ограничение транзакций при работе с ``_bucket``: ранее ``on_commit``‑триггер на ``_bucket`` блокировал запись в другие спейсы в рамках той же транзакции (например, из ``on_replace``‑триггеров). Теперь такие сценарии разрешены — в ``on_commit`` пропускаются изменения, относящиеся к «чужим» спейсам. @@ -223,7 +223,7 @@ cartridge 2.16.4 → 2.16.6 **Исправлено:** * Мониторинг синхронных спейсов с учётом фактического режима ``failover``: - предупреждение о синхронных спейсах теперь пишется в журнад только если ``failover`` настроен в режиме, который их не поддерживает (например, ``eventual`` или ``stateful`` без ``synchro_mode``), а не всегда при старте экземпляра; + предупреждение о синхронных спейсах теперь пишется в журнал только если ``failover`` настроен в режиме, который их не поддерживает (например, ``eventual`` или ``stateful`` без ``synchro_mode``), а не всегда при старте экземпляра; в модуль ``cartridge.failover`` добавлена функция ``is_sync_spaces_supported()``; синхронные спейсы теперь определяются динамически, включая спейсы, добавленные во время работы. http 1.8.0 → 1.9.0