SDK Enterprise
Версия Tarantool Enterprise SDK состоит из двух частей:
<TARANTOOL_BASE_VERSION>-r<REVISION>
Например: 2.11.1-0-gc42d9735b-r589.
TARANTOOL_BASE_VERSION— версия Tarantool Enterprise.REVISION— ревизия SDK. Помимо самого Tarantool, она включает утилитуtt, набор модулей с открытым и закрытым исходным кодом, а также примеры. Подробнее см. в разделе Комплектация.
В этом релизе Tarantool 2.x обновлён до версии 2.11.10 — bugfix-релиза, устраняющего 15 проблем с версии 2.11.9. Также в релизе обновлён широкий набор компонентов экосистемы: tt-ee, crud, cartridge, vshard, metrics, checks, membership, migrations, graphqlapi, graphqlapi-helpers и kafka.
Это bugfix-релиз: исправлено 15 проблем с версии 2.11.9 (r708), а также добавлена одна опциональная функция. Она отключена по умолчанию и не оказывает никакого эффекта, пока не включена явно.
- Версия 2.x — предыдущая стабильная ветка; рекомендуется обновляться до 3.x.
- Чтобы обновиться с Tarantool 2.x на 3.x см. процедуру обновления.
Добавлено:
- Нединамическая опция
box.cfg.memtx_memory_recovery_check(по умолчанию'off') для предупреждения ('warn') или отказа в запуске ('panic'), еслиmemtx_memoryзадан ниже ранее зафиксированного уровня использования.
Исправлено:
- Вызов
box.cfgс аргументом, не являющимся таблицей, теперь завершается понятной ошибкойcfg should be a tableвместо невнятной внутренней ошибки (gh-13145). - Устаревшие опции
box.cfg, заданные через переменные окруженияTT_*, теперь преобразуются в соответствующие опции-замены, а само преобразование больше не перезаписывает молча значение опции-замены, если оно было задано явно (gh-13144). - Избыточное предупреждение об устаревании
replication_connect_quorum, которое выводилось при явном указанииbootstrap_strategy = 'legacy'в том же вызовеbox.cfg(gh-12933).
Исправлено:
- Ошибка упорядочивания при батчинге WAL, из-за которой присоединяющаяся реплика могла пропустить строки, записанные мастером (gh-11028).
В рамках этой работы перенесены патчи из основной ветки (trunk) ванильного LuaJIT (gh-12480). При этом были исправлены следующие проблемы:
Исправлено:
- Некорректное поведение JIT для вариативных (vararg) FFI-функций на платформе macOS AArch64 (gh-6097).
- Различные проблемы ABI и соглашений вызова FFI для архитектур x64/AArch64.
ipairs_aux()— приведено в соответствие с поведением JIT-бэкенда на x86/x64.- Возврат
-1функциейos.time(). - Предупреждения UBSan для
table.new().
Изменено:
- Режим доступа по умолчанию для файлов, создаваемых через
fio.open(), изменён на 0666 (до применения umask) (gh-7981).
Исправлено:
- Регрессия авторизации на HTTP-прокси или целевом хосте HTTP(S) по алгоритму Basic (gh-12805).
Исправлено:
- Разбор времени с десятичной дробной частью часа или минуты (gh-12082).
- Переполнение стека в функции
strptime()при разборе часовых поясов.
Исправлено:
- Аварийное завершение при вызове
pack()с пустой строкой формата или строковым значением для спецификатора формата'a'(gh-12063).
Исправлено:
- Нарушение консистентности при ребалансировке: запрос мог быть повторён на хранилище, которое ещё не владело бакетом, из-за чего чтение не возвращало данные, а запись уходила не в тот набор реплик (#509).
- Запросы больше не повторяются вслепую: повтор теперь выполняется только если роутер восстановился после ошибки, а сам повтор никогда не выходит за пределы исходного времени ожидания — раньше запрос мог занимать до двух раз больше времени, чем было указано.
Добавлено:
tt connect: команда\historyдля вывода последних выполненных команд в интерактивной консоли.
Изменено:
tt stop: процессы предварительно прерываются (interrupt), что позволяет завершать их параллельно.
Исправлено:
tt log -f: возможная потеря или дублирование строк при переименовании файла, зависание после удаления отслеживаемого каталога логов, а также строки, записанные ровно в момент дочитывания файла до конца, которые не появлялись до следующей записи.
Этот релиз охватывает версии 2.17.2, 2.17.3, 2.18.0 и 2.18.1.
Добавлено:
- Новая опция
--vshard-bootstrap-timeout(переменная окруженияTARANTOOL_VSHARD_BOOTSTRAP_TIMEOUT) ролиvshard-routerдля настройки времени ожидания бутстрапа vshard. Значение по умолчанию остаётся 10 секунд, чего может не хватать для распределения бакетов по хранилищам на медленных CI-раннерах. - Необязательный аргумент
timeoutуcartridge.test-helpers.Cluster:start,cartridge.test-helpers.Cluster:bootstrapиcartridge.test-helpers.Cluster:bootstrap_vshardдля увеличения времени ожидания HTTP-запроса при бутстрапе.
Обновлено:
- Зависимость
vshardс версии 0.1.41 до 0.1.42. - Зависимость
checksс версии 3.4.0 до 3.4.1. - Зависимость
httpс версии 1.9.0 до 1.9.1. В этот релиз включены исправления инфраструктуры, не меняющие поведение модуля. - Зависимость
membershipс версии 2.5.3 до 2.5.4.
Исправлено:
- Состояние гонки при остановке экземпляра, когда
membership.leave()мог выполниться до остановки ролей, что приводило к ошибкам. - Если во время failover
box.ctl.promote()возвращаетER_INTERFERING_PROMOTE, повтор теперь выполняется 3 раза с задержкой в 1 секунду, чтобы новый мастер не застревал в режиме read-only.
Добавлено:
- Флаг сборки
WITH_ZSTDдля включения поддержки сжатияzstd. В сборке Enterprise SDK поддержкаzstdвключена по умолчанию.
Изменено:
- Обновлена версия
librdkafkaдо 2.15.1.
Этот релиз охватывает версии 1.8.2 и 1.8.3: в нём появились аннотации EmmyLua и исправлен CI-пайплайн для запуска на внешних пулл-реквестах.
Добавлено:
- Поддержка анализатора EmmyLua и аннотации (#551).
Изменено:
- Опция
config.checksвdefault_configустановлена в'off', чтобы избежать зависящих от окружения предупреждений (THP, readahead) в тестах (#549). - CI теперь запускается и для пулл-реквестов, а не только для push в ветки; запуски пропускаются для пулл-реквестов из базового репозитория, чтобы избежать дублирования (#555).
Исправлено:
config_metrics_test: системные предупреждения теперь отключаются только при наличии опцииconfig.checks(вместо проверки версии Tarantool), поэтому тест проходит на любой версии Tarantool 3.x (#553).
Исправлено:
- Полезная нагрузка (payload) участника могла безвозвратно теряться после
leave()и последующего повторного присоединения (rejoin).
Этот релиз охватывает версии 1.2.0 и 1.2.1.
Добавлено:
- Помощник
drop_sharding_key()для очистки_ddl_sharding_keyпосле удаления спейса. - Помощники
register_sharding_func()иdrop_sharding_func()(#59).
Исправлено:
- Если у набора реплик не было исправного кандидата в лидеры (лидер был отключён, недоступен или ещё не избран во время stateful-failover),
migrator.up()ранее пропускал его и сообщал об успехе. Теперь перед миграцией у каждого набора реплик требуется наличие исправного кандидата в лидеры: если у набора реплик ещё нет активного лидера или лидер неисправен, вызов завершается ошибкой, чтобы вызывающая сторона могла подождать появления лидера и повторить попытку.
VShard 0.1.42 полностью совместим с предыдущими версиями vshard.
Добавлено:
- Бэкенд для менеджера точек восстановления Tarantool — бэкенд
vshard-router. Он позволяет менеджеру периодически создавать согласованные на уровне кластера точки восстановления, которые впоследствии можно использовать для резервного копирования и восстановления на момент времени всего кластера VShard. Новый публичный метод роутераvshard.router.create_cluster_recovery_point()создаёт точку восстановления на мастере каждого набора реплик (#648). Только с tarantool 3.8.0+. Для пользователей Tarantool 2.11 видимых изменений нет.
Этот релиз охватывает версии 0.0.12, 0.0.13, 0.0.14 и 0.0.15.
Изменено:
- Поддержка
ddl-eeбыла добавлена в 0.0.12 и отменена в 0.0.13; это изменение не сохранилось в 0.0.15 (#55).
Исправлено:
- Определение Tarantool Enterprise в
utils.get_tnt_version()теперь выполняется поtarantool.package(#58). - Нестабильные тесты
cluster.test_get_instancesиcluster.test_get_replicaset_instances— теперь тест дожидается статусаhealthyу всех экземпляров перед проверками. - Аварийное завершение
utils.get_tnt_version()с ошибкойvariable 'tarantool' is not declaredв приложениях на Cartridge, из-за чего ломалось определение Tarantool Enterprise (#61).
В этом релизе обновлены зависимости и тестовое окружение.
Добавлено:
- Новые опции
box.cfgдля Tarantool 2.11:auth_delay,auth_type,bootstrap_strategy,disable_guest,election_fencing_mode,metrics,password_enforce_digits,password_enforce_lowercase,password_enforce_specialchars,password_enforce_uppercase,password_history_length,password_lifetime_days,password_min_length.
Исправлено:
- Учтено изменение драйвера статистики
crudпо умолчанию наmetrics.
Этот релиз добавляет фильтрацию пользовательских метрик на основе селекторов. Теперь пользовательские метрики можно связывать с иерархическими селекторами и управлять ими с помощью metrics.set_filter() или опций include/exclude metrics.cfg(). Неизвестные элементы include/exclude рассматриваются как пользовательские селекторы, а имена встроенных групп метрик сохраняют прежнее поведение.
Добавлено:
metrics.namespace()иmetrics.set_filter()— для пометки пользовательских коллекторов/обратных вызовов селекторами и их фильтрации во время сбора метрик.
Исправлено:
metrics.cfg{exclude = {'all'}}теперь исключает селекторы пользовательских метрик в дополнение к встроенным группам метрик.
Добавлено:
Поддержка режима Tarantool
election_mode = 'manual'в stateful-режиме отказоустойчивости Cartridge, включая наборы реплик из одного экземпляра.Добавлены вспомогательные функции Lua API для работы во время выполнения:
require('cartridge.lua-api.failover').switch_to_manual_election_mode()require('cartridge.lua-api.failover').switch_to_off_election_mode()
для перевода stateful набора реплик между режимами Tarantool
election_mode = 'off'иelection_mode = 'manual'.Документация по переводу набора реплик с управляемым состянием (stateful) на ручной режим выбора лидера (manual election mode) Tarantool, включая миграцию с перезапуском, вспомогательные функции для работы во время выполнения, откат (rollback) и рекомендации по фенсингу (fencing).
Изменено:
- Обновлена зависимость
vshardдо версии0.1.41.
Исправлено:
- Состояние гонки при остановке экземпляра, когда
membership.leave()мог выполниться до остановки ролей, что приводило к ошибкам. - Если
box.ctl.promote()возвращаетER_INTERFERING_PROMOTEво время отказоустойчивости (failover), повышение повторяется 3 раза с задержкой в 1 секунду, чтобы новый мастер-узел не остался в режиме только чтения. - Состояние гонки в механизме отказоустойчивости с сохранением состояния (stateful-failover) при добавлении нового набора реплик: если state-провайдер еще не назначил лидера для этого набора реплик,
failover.cfg()теперь используетtopology.get_leaders_order(...)[1](failover_priority[1]) в качестве начального назначения. Это предотвращает переключение будущего лидера вread_only=trueи позволяет избежать взаимной блокировки при применении топологии.
Этот релиз добавляет управление конфигурацией воркеров (workers) кластера и исправляет некорректное сообщение об ошибке в tt start при недостаточных правах доступа к каталогу.
Добавлено:
tt cluster worker publish: публикация (загрузка) конфигурации воркера в etcd или хранилище конфигураций на основе Tarantool.tt cluster worker show: вывод конфигурации воркера, хранящейся в etcd или хранилище конфигураций на основе Tarantool.tt cluster worker delete: удаление конфигурации воркера из etcd или хранилища конфигураций на основе Tarantool.
Исправлено:
tt start: исправлена ошибка, из-за которой не выводилось сообщение при недостаточных правах доступа к директивеvar.
Версия VShard 0.1.41 полностью совместима с предыдущими версиями VShard.
Добавлено:
- Новая опция конфигурации хранилища:
rebalancer_bucket_send_timeout. Она задает время ожидания в секундах на отправку одного бакета во время ребалансировки. Это позволяет ограничить, насколько долго бакет может быть недоступен для записи во время отправки.
Изменено:
- Улучшен выбор бакетов ребалансировщиком: теперь приоритет отдается бакетам, на которых нет активных RW-запросов.
Исправлено:
- Проблема, из-за которой могли появляться дублирующиеся активные бакеты из-за задержанных «блуждающих» TCP-пакетов #214.
- Проблема, из-за которой RW-запросы могли нарушить репликацию после смены мастера во время ребалансировки #573.
- Проблема, из-за которой смены мастера во время ребалансировки могли приводить к появлению дублирующихся активных бакетов #576.
В релизе обновлены ключевые зависимости платформы: Tarantool 2.11.9 — bugfix‑релиз ветки 2.11, ориентированный на повышение стабильности и предсказуемости работы. В релизе улучшены диагностика и реакция на ошибки WAL, устранены зависания и проблемы обслуживания WAL‑файлов в Core, а также внесён большой набор исправлений в LuaJIT и модуль Datetime. Дополнительно обновлены и доработаны ключевые компоненты экосистемы (crud, vshard, metrics, tt-ee, cartridge, http), включая улучшения безопасной работы при ребалансировке, отказоустойчивого чтения и изменения в TLS/mTLS‑настройках HTTP.
Это bugfix-релиз: исправлено 34 проблемы с версии 2.11.8 (r702).
- Версия 2.x — предыдущая стабильная ветка; рекомендуется обновляться до 3.x.
- Чтобы обновиться с Tarantool 2.x на 3.x см. процедуру обновления.
При обновлении SDK рекомендуется:
- перед началом обновления убедиться, что все наборы реплик исправны и находятся в согласованном состоянии;
- выполнять обновление последовательно, проверяя состояние кластера после обновления каждого компонента;
- не запускать ребалансировку данных при прохождении через CRUD 1.7.0, пока обновление полностью не завершено.
Добавлено:
- Новое встроенное системное событие
box.wal_error, которое рассылается каждый раз, когда Tarantool не удаётся зафиксировать транзакцию в журнале предзаписи (WAL) (gh-9405).
Исправлено:
- Проблема, из-за которой ошибки SSL некорректно регистрировались при разрыве соединения с клиентом.
- Ошибка, из-за которой Tarantool мог зависать при использовании
box.watch(gh-9632). - Ошибка, при которой файлы
.xlog.inprogressне удалялись автоматически во время запуска сервера, еслиwal_dirзадан и отличается от значения по умолчанию (gh-12081). - Ошибка, при которой локальный спейс нельзя было очистить (truncate), если спейс
_truncateнастроен как синхронный (synchronous) (gh-12585).
- Если при записи в WAL возникает
ER_WAL_IO, текущий лидер при первом же таком случае отказывается от своей роли.
Добавлено:
- Поддержка
ffi.abi("dualnum")для определения режима LuaJIT (dual-number: различение целых int64 и double). - Добавлены флаги
misc.memprof.availableиmisc.sysprof.availableдля определения доступности соответствующего профайлера в текущей сборке. Подробнее про профайлеры см. в разделах LuaJIT memory profiler и LuaJIT platform profiler.
Исправлено:
- Некорректная генерация
IR_TBARна aarch64. - Обработка переполнения стека при выходе из трассировки.
- «Висячие» ссылки на
CType. - Закрытие состояния VM после раннего OOM.
- Генерация
IR_MULна x86/x64. - Некорректное объединение инструкций
stp/ldpна aarch64. - Инвалидизация записи SCEV при возврате в более низкий фрейм.
- Сборка на macOS 15/Clang 16.
- Генерация
IR_HREFKна aarch64. - Проверки стека в 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().
Исправлено:
- Падение из-за срабатывания
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.
Примечание
Ниже приведены модули, в которых произошли изменения. Если модуль не указан в списке ниже, то обновления для него не выпускались.
Примечание
Начиная с CRUD 1.6.0 закрыта уязвимость, позволявшая выполнять операции, на которые у пользователя не было прав. Теперь CRUD строго соблюдает права доступа: пользователь может выполнять только те действия, которые разрешены его привилегиями. Если приложению требуется доступ к служебным спейсам, соответствующие права необходимо выдавать явно.
Подробнее Чтение и запись данных через модуль CRUD.
Подробности о безопасном режиме и совместимости при поэтапном (rolling) обновлении описаны в разделе Обновление модуля crud (см. Ограничение совместимости при обновлении и Порядок обновления).
Добавлено:
- Метод
crud.locate()для определения, где находится кортеж — в движке memtx или vinyl. Работает для спейсов, управляемых enterprise-модулемcooler. - В
crud.lenдобавлена поддержка опций:mode,balance,prefer_replica,request_timeout. 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. В этом случае хранилище пропускаетbucket referencingи пишетrate-limitedпредупреждение о сниженной безопасности ребаланса во время обновления без простоя (rolling upgrade). - Ошибка
bucket_refв методахcrud.*_manyтеперь возвращается в виде массива. - Вызов
bucket_unrefвынесен из транзакции. - Предотвращено создание дублирующихся метрик при повторном вызове
init. - Предотвращено создание дублирующихся триггеров на спейсе
_crud_settings_localпри повторном вызовеinit. - Взаимная блокировка в
crud.schema()после ошибки перезагрузки схемы. - Удалена метрика
tnt_crud_storage_safe_mode_enabledс роутера. - Убрана обёртка
wrap_box_space_func_resultдля сокращения аллокаций и ускорения вызовов узла хранилища. - У* Оптимизирована пагинация в
crud.select()иcrud.pairs()с курсоромafter: для позиционирования курсора за O(1) на Tarantool 2.10+ используется нативная опцияafter.
Изменено:
- При переключении в безопасный режим прекращена практика пометки/остановки iproto файберов в быстром режиме; корректность операций на узле хранилища проверяется через
yield_checksв тестах. - Переключение в безопасный режим перенесено с триггера
on_commitнаon_replace. - Спейсы на движке vinyl всегда работают в безопасном режиме.
Версия 0.1.40 полностью совместима с предыдущими версиями vshard.
Добавлено:
- Возможность отключать ограничитель частоты логирования (log rate limiter) через модуль
consts. - Теперь вызывать
vshard.router.info()иvshard.storage.info()можно, даже если роутер или хранилище отключены. Кроме того, функции возвращают новое булево поле:is_enabled. - Улучшено журналирование операций, связанных с ребалансировкой и восстановлением.
Исправлено:
- Проблема, из‑за которой старый мастер-узел не мог обнаружить новый мастер-экземпляр в пределах набора реплик.
- Утечка соединений: соединение не освобождалось сборщиком мусора после реконфигурации или перезагрузки.
- Ограничение транзакций при работе с
_bucket: ранееon_commit‑триггер на_bucketблокировал запись в другие спейсы в рамках той же транзакции (например, изon_replace‑триггеров). Теперь такие сценарии разрешены — вon_commitпропускаются изменения, относящиеся к «чужим» спейсам. - Проблема, из-за которой ошибка пользователя маскировалась ошибкой
Transaction is active...при вызове персистентной функции, которая выбрасывает ошибку и не закрывает транзакцию на версиях Tarantool младше 3.0.0-beta1-18. Теперь vshard автоматически закрывает такие транзакции и возвращает исходную ошибку пользователя. - Проблема, из-за которой соединение с репликой не восстанавливалось автоматически, если оно было закрыто vshard или пользователем.
graphite: добавлена возможность отправлять метрики на несколько серверов.- Удаление реплики с помощью метода
box.space._cluster:delete()не удаляет информацию об этой реплике из метрик. Информация исчезает только после перезапуска кластера. - Обратная совместимость с предыдущей версией плагина сохранена.
- Изменения в поведении:
initтеперь присваивает уникальное имя создаваемому файберуfiberна основе входных опцийgraphite server(если переданы).- Добавлен метод
stop()для остановки всех файберовfibers, запущенных плагином.
Добавлено:
tt pack: добавлена поддержка вложенных файлов.packignoreв корне окружения tt.tt status: добавлена опция--formatдля вывода в форматах JSON и YAML (машиночитаемый вывод).
Изменено:
tt export: изменено поведение по умолчанию для составных полей (массивы и словари) — теперь они экспортируются в JSON. Для возврата прежнего поведения используйте--compound-value-format=ignore.
Исправлено:
- Проверка целостности для приложения, использующего структуру каталогов Cartridge (одиночное приложение, у которого корневой каталог совпадает с корнем окружения).
- Проблема с Tarantool 3.5+: экземпляр не останавливался при падении периодической проверки целостности.
- Исправления, выявленные статическим анализатором Svacer и проверками на известные уязвимости (CVE).
Изменено:
- По умолчанию дерево файлов на странице кода больше не разворачивается.
- Обновлена зависимость vshard до версии 0.1.40.
- Обновлена зависимость membership до версии 2.5.3.
- Обновлена зависимость cartridge-metrics-role до версии 0.1.3.
- Обновлена зависимость graphql до версии 0.3.1.
- Обновлена зависимость http до версии 1.9.0.
Исправлено:
- Переработан мониторинг синхронных спейсов с учетом фактического режима отказоустойчивости. Предупреждение о синхронных спейсах теперь записывается в журнал, когда отказоустойчивость (failover) настроена в режиме, который их не поддерживает (eventual, stateful без
synchro_mode), а не безусловно при запуске экземпляра. - Добавлена функция
is_sync_spaces_supported()в модульcartridge.failover. - Синхронные спейсы теперь обнаруживаются динамически, что позволяет учитывать спейсы, добавленные во время работы.
Этот релиз добавляет новую опцию ssl_verify_client и изменяет поведение по умолчанию при заданном параметре ca_file. Также исправлено несколько ошибок.
Добавлено:
- Новая опция
ssl_verify_client.
Исправлено:
- Сервер не пересоздается, если его адрес и порт не изменились.
- Сервер не изменяется после обновления параметров при перезагрузке конфигурации.
Критические изменения:
Mutual TLS (взаимный TLS) с опцией ca_file включен по умолчанию.
Документация: Модуль http.
- Added manual trigger job to run tests to generate
certificate of compliance. Ready for Astra Linux.
- Bumped Cartridge version to 2.16.0.
- Bumped Cartridge version to 2.15.4.
- Bumped Kafka version to 1.6.10.
- Bumped Cartridge version to 2.15.3.
- Bumped Cartridge version to 2.15.1.
- Bumped
tt-eeversion to v2.8.1. - Bumped
vshard-eeversion to 0.1.32.
- Bumped Cartridge version to 2.15.0.
- Bumped
membershipversion to 2.5.1. - Bumped
expirationd-eeversion to 1.8.0.
- Bumped
tarantool-2.11series to 2.11.6. - Bumped
tt-eeversion to v2.8.0. - Bumped
migrations-eeversion to 1.3.1.
- Bumped
tarantool-2.11series to 2.11.5. - Bumped
tt-eeversion to v2.5.2. - Updated Kafka to 1.6.9.
- Bumped
tt-eeversion to v2.5.1. - Bumped
tt-eeversion to v2.5.0.
- Moved
cartridge-auth-extensionto stable directory. - Bumped
crud-eeversion to 1.7.1. - Bumped
migrations-eeversion to 1.3.0.
- Bumped
tarantool-2.11series to 2.11.4. - Bumped Cartridge version to 2.12.3.
- Bumped
tt-eeversion to v2.4.0. - Bumped
queueversion to 1.4.2. - Added Migration Guide to bundle.
- Moved to Enterprise Edition modules.
- Fixed Docker image due to CentOS 7 EOL.
- Fixed CI/CD workflows running inside CentOS 7.
- Bumped
tt-eeversion to v2.3.1. - Enabled
ttbash completion. - Updated Kafka to 1.6.8.
- Updated Docker image.
- Updated CMake to 3.20.6.
- Installed dependencies for building OpenSSL.
- Fixed installation of Python 3.6.
- Updated CRUD to 1.5.1.
- Updated
sideserviceto 0.2.1. - Updated
httpgoto 0.2.2. - Updated
httpgo-crudto 0.1.1.
- Updated
cartridge-clito 2.12.12. ttused instead oftarantoolctlfor build/test routines.- Made Tarantool and bundle versions correct.
- Bumped
tarantool-2.11to 2.11.3.
- Updated
cartridge-clito 2.12.9. - Updated
tt-eeto 1.3.1.
- Updated
cartridge-clito 2.12.7. - Updated
tarantool-2.11to 2.11.1.
- Added
vshard0.1.22.
- Fixed non-interactive installation of the
brewpackage. - Changed the owner of the
/usr/local/bindirectory. - Installed
awscli@1instead ofawsclisince it takes much less time.
- Added
expirationd1.3.1.
- Added CRUD 1.0.0.
- Refactored the way that GC64 builds are defined in the build workflow. There are no changes to the composition of resulting bundles.
- Added alerting failures in builds on stable branches and integration testing to VK Teams chats.
- Added Cartridge 2.7.7.
Release SDK by tags:
- Run workflow in SDK docker container.
- Uploaded SDK files for 1.10, 2.8, 2.10 versions to release folder.
- Added consistency check for all versions.
- Removed support of Tarantool 2.7.
- Started using
tarantool/actions/prepare-checkoutto make builds more stable.
- Remove the local registry and setup using GitHub registry.
- Sync rocks cache to S3 and back.
- Setup using shared runners.
- Refactor and format
ci-linux.ymlandci-macos.yml.
- Removed Kafka 1.5.0 due to a build issue with Tarantool 2.10.3 and higher.
- Updated Kafka to version 1.6.2.
- Updated
tuple-keydefto version 0.0.3.
- Updated Tarantool to 2.10.3.
- Added a readable error for the case when the flight recoder fails
to write data due to insufficient free space on the disk device.
Previously, it was sending a
SIGBUSerror. - Fixed a crash in the flight recorder caused by non-thread-safe log recording from multiple threads.
- Updated Tarantool to 2.10.2.
- Increased resolution of stored entries in flight recorder.
- Fixed a bug in the flight recorder that resulted in skipping log entries in case
box.cfg.log_levelis less thanflightrec_log_level.
- Updated Tarantool to 2.10.1.
- Updated Cyrus SASL to version 2.1.28.
- Updated OpenLDAP to version 2.5.13.
- Updated LZ4 to version 1.9.3. Fixed CVE-2021-3520.
- Fixed replication reconnect failure after disabling SSL encryption.
- Fixed a crash that occurred while tyring to start an instance that has
a compressed
memtxspace. - Fixed CVE-2022-29242 in GOST SSL engine.
- Fixed a bug in the flight recorder reader implementation that resulted in a hang or error while trying to open an empty section.
- Implemented user-defined audit events. Now it’s possible to log custom messages to the audit log from Lua.
- [Breaking change] Switched the default audit log format to CSV. The
format can be switched back to JSON using the new
box.cfg.audit_formatconfiguration option. - Implemented the audit log filter. Now, it’s possible to enable logging only
for a subset of all audit events using the new
box.cfg.audit_filterconfiguration option.
- Implement constraints and foreign keys. Now a user can create function constraints and foreign key relations (gh-6436).
- Changed log level of some information messages from critical to info (gh-4675).
- Added predefined system events:
box.status,box.id,box.electionandbox.schema(gh-6260). - Introduced transaction isolation levels in Lua and IPROTO (gh-6930).
- Disabled the deferred DELETE optimization in Vinyl to avoid possible
performance degradation of secondary index reads. Now, to enable the
optimization, one has to set the
defer_deletesflag in space options (gh-4501).
- Added support of console autocompletion for
net.boxobjectsstreamandfuture(gh-6305).
- Added bundling of GNU libunwind to support backtrace feature on AARCH64 architecture and distributives that don’t provide libunwind package.
- Re-enabled backtrace feature for all RHEL distributions by default, except for AARCH64 architecture and ancient GCC versions, which lack compiler features required for backtrace (gh-4611).
- Disabled audit log unless explicitly configured. Before this change,
audit events were written to stderr if
box.cfg.audit_logwasn’t set. Now, audit log is disabled in this case. - Disabled audit logging of replicated events. Now, replicated events (for example, user creation) are logged only on the origin, never on a replica.
- Banned DDL operations in space on_replace triggers, since they could lead to a crash (gh-6920).
- Fixed a bug due to which all fibers created with
fiber_attr_setstacksize()leaked until the thread exit. Their stacks also leaked except whenfiber_set_joinable(..., true)was used. - Fixed a crash in mvcc connected with secondary index conflict (gh-6452).
- Fixed a bug which resulted in wrong space count (gh-6421).
- Select in RO transaction now reads confirmed data, like a standalone (auotcommit) select does (gh-6452).
- Fixed potential obsolete data write in synchronous replication due to race in accessing terms while disk write operation is in progress and not yet completed.
- Fixed replicas failing to bootstrap when master is just re-started (gh-6966).
- Fixed the behavior of tarantool console on SIGINT. Now Ctrl+C discards the current input and prints the new prompt (gh-2717).
Intervals received after datetime arithmetic operations may be improperly normalized if result was negative
tarantool> date.now() - date.now() --- - -1.000026000 seconds ...
I.e. 2 immediately called
date.now()produce very close values, whose difference should be close to 0, not 1 second (gh-6882).
- Changed the type of the error returned by net.box on timeout
from
ClientErrortoTimedOut(gh-6144).
- Added binary protocol encryption.
- Added tuple field compression.