mirror of
https://github.com/isar/libmdbx.git
synced 2025-05-12 16:27:46 +08:00
mdbx: дополнение ChangeLog.
This commit is contained in:
parent
dc747483dd
commit
668a1e42e3
43
ChangeLog.md
43
ChangeLog.md
@ -17,6 +17,8 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
|
|||||||
- [Виктору Логунову](https://t.me/vl_username) за сообщение об опечатки в имени переменной в Conan-рецепте.
|
- [Виктору Логунову](https://t.me/vl_username) за сообщение об опечатки в имени переменной в Conan-рецепте.
|
||||||
- [Илье Михееву](https://t.me/IlyaMkhv) за сообщение о лишнем/ненужном предупреждении несоответствия файла БД новому размеру.
|
- [Илье Михееву](https://t.me/IlyaMkhv) за сообщение о лишнем/ненужном предупреждении несоответствия файла БД новому размеру.
|
||||||
- [maxc0d3r](https://gitflic.ru/user/maxc0d3r) for bug reporting and testing.
|
- [maxc0d3r](https://gitflic.ru/user/maxc0d3r) for bug reporting and testing.
|
||||||
|
- [Алексею Костюку (aka Keller)](https://t.me/keller18306) за сообщения о проблеме копирования на NFS.
|
||||||
|
|
||||||
|
|
||||||
Новое:
|
Новое:
|
||||||
|
|
||||||
@ -75,8 +77,13 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
|
|||||||
|
|
||||||
- В C++ API отменён вброс исключения при запросе транзакции у отсоединённого курсора посредством вывоза `mdbx::cursor::txn()`.
|
- В C++ API отменён вброс исключения при запросе транзакции у отсоединённого курсора посредством вывоза `mdbx::cursor::txn()`.
|
||||||
|
|
||||||
|
- При невозможности отвязки курсора от его текущей транзакции функция `mdbx_cursor_bind()`
|
||||||
|
теперь возвращает `MDBX_EINVAL` вместо `MDBX_BAD_TXN`.
|
||||||
|
|
||||||
Исправления:
|
Исправления:
|
||||||
|
|
||||||
|
- Для совместимости с GCC 15.x в режиме C23 изменен порядок указания атрибутов функций.
|
||||||
|
|
||||||
- Устранён регресс допускающий SIGSEGV в операциях обновления после вытеснения/spilling страниц в больших транзакциях.
|
- Устранён регресс допускающий SIGSEGV в операциях обновления после вытеснения/spilling страниц в больших транзакциях.
|
||||||
Ошибка присутствует в выпусках v0.13.1, v0.13.2, v0.13.3 и оставалась незамеченной из-за специфических условий и низкой вероятности проявления.
|
Ошибка присутствует в выпусках v0.13.1, v0.13.2, v0.13.3 и оставалась незамеченной из-за специфических условий и низкой вероятности проявления.
|
||||||
Более подробная информация в описании коммита `cb8eec6d11cdab4f7d3cf87913e8009149dcf60b`.
|
Более подробная информация в описании коммита `cb8eec6d11cdab4f7d3cf87913e8009149dcf60b`.
|
||||||
@ -130,6 +137,38 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
|
|||||||
|
|
||||||
- В C++ API добавлена упущенная проверка `__cpp_concepts >= 202002` для использования концептов C++.
|
- В C++ API добавлена упущенная проверка `__cpp_concepts >= 202002` для использования концептов C++.
|
||||||
|
|
||||||
|
- Устранён регресс при использовании курсоров для DBI=0 в читающих транзакциях.
|
||||||
|
|
||||||
|
В результате рефакторинга и ряда оптимизаций для завершения/гашения
|
||||||
|
курсоров в читающих и пишущих транзакций стал использоваться общий код.
|
||||||
|
Причем за основу, был взят соответствующий фрагмент относящийся к
|
||||||
|
пишущим транзакциям, в которых пользователю не позволяется
|
||||||
|
использоваться курсоры для DBI=0 и поэтому эта итераций пропускалась.
|
||||||
|
|
||||||
|
В результате, при завершении читающих транзакциях, курсоры связанные с
|
||||||
|
DBI=0 не завершались должным образом, а при их повторном использовании
|
||||||
|
или явном закрытии после завершения читающей транзакции происходило
|
||||||
|
обращение к уже освобожденной памяти. Если же такие курсоры
|
||||||
|
отсоединялись или закрывались до завершения читающей транзакции, то
|
||||||
|
ошибка не имела шансов на проявление.
|
||||||
|
|
||||||
|
- Устранён регресс в виде ошибки `EAGAIN` при копировании БД на NFS и CIFS/SMB.
|
||||||
|
|
||||||
|
При доработках/развитии API в функции копирования был добавлен захват
|
||||||
|
файловой блокировки посредством как `fcntl()`, так и `flock()`. Однако,
|
||||||
|
в зависимости от версии локального ядра, версии удалённого сервера NFS и
|
||||||
|
опций монтирования, это могло приводить к возврату POSIX-ошибки `EAGAIN`
|
||||||
|
(`11` на большинстве платформ, включая Linux).
|
||||||
|
|
||||||
|
- Устранена ошибка merge/rebase внутри `mdbx_txn_release_all_cursors_ex()`,
|
||||||
|
что могло приводить к последующим неожиданным ошибкам `MDBX_EBADSIGN` и утечкам памяти.
|
||||||
|
Для проверки сценария дополнен соответствующий тест.
|
||||||
|
|
||||||
|
- Исправлена assert-проверка в пути завершения вложенных транзакций.
|
||||||
|
Для проверки сценария дополнен соответствующий тест.
|
||||||
|
|
||||||
|
- Устранена возможность возврата неожиданной ошибки `MDBX_BUSY` из `mdbx_txn_lock(dont_wait=false)`.
|
||||||
|
|
||||||
Прочие доработки:
|
Прочие доработки:
|
||||||
|
|
||||||
- Существенный рефакторинг с реструктуризацией кода, переименованием внутренних структур, их полей и внутренних функций.
|
- Существенный рефакторинг с реструктуризацией кода, переименованием внутренних структур, их полей и внутренних функций.
|
||||||
@ -155,6 +194,10 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx
|
|||||||
|
|
||||||
- Отключено использование C23 `[[атрибутов]]` для версий CLANG меньше 20.
|
- Отключено использование C23 `[[атрибутов]]` для версий CLANG меньше 20.
|
||||||
|
|
||||||
|
- Во избежание потенциальных проблем отключено использование `copy_file_range()` на ядрах Linux 5.3 - 5.18.
|
||||||
|
|
||||||
|
- Вброс `std::invalid_argument` теперь производится явным сообщением `MDBX_EINVAL`.
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user