mdbx: доработка mdbx_close_dbi() для возврата ошибки при попытке закрыть dbi-хендл измененной в транзакции таблицы (backport).

This commit is contained in:
Леонид Юрьев (Leonid Yuriev)
2024-10-26 01:16:20 +03:00
parent 222150bb28
commit 945899e4fd
2 changed files with 33 additions and 3 deletions

View File

@@ -20,6 +20,16 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
изменения геометрии другим процессом с увеличением верхнего размера БД
и увеличением БД больше предыдущего лимита.
- Доработка `mdbx_close_dbi()` для возврата ошибки при попытке закрыть
dbi-дескриптор таблицы, созданной и/или измененной в ещё выполняющейся
транзакции. Такое преждевременное закрытие дескриптора является неверным
использованием API и нарушением контракта/предусловий сформулированных
в описании `mdbx_close_dbi()`. Однако, вместо возврата ошибки
выполнялось некорректное закрытие дескриптора, что могло приводить к
созданию таблицы с пустым именем, утечки страниц БД и/или нарушению
структуры b-tree (неверной ссылкой на корень таблицы).
--------------------------------------------------------------------------------