Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
libmdbx 0.13.6 _Buzina_ source code.tar.gz | 2025-04-22 | 792.4 kB | |
libmdbx 0.13.6 _Buzina_ source code.zip | 2025-04-22 | 896.3 kB | |
README.md | 2025-04-22 | 6.1 kB | |
Totals: 3 Items | 1.7 MB | 0 |
Поддерживающий выпуск стабильной ветки с исправлением обнаруженных ошибок и устранением недочётов, в память о погибшем украинском историке и писателе Алесе Бузине.
For translation to other languages please try Yandex or liar Google.
git diff' stat: 15 files changed, 194 insertions(+), 36 deletions(-)
Благодарности:
- Erigon за спонсорство.
- Илье Михееву и команде Erigon за сообщения о проблеме и тестирование.
- Алексею Костюку (aka Keller) за сообщения о проблеме копирования на NFS.
Исправления:
- Устранён регресс при использовании курсоров для DBI=0 (aka GC/FreeDB) в читающих транзакциях.
После рефакторинга и ряда оптимизаций для завершения/гашения курсоров в читающих и пишущих транзакций, стал использоваться общий код. Причем за основу, был взят соответствующий фрагмент относящийся к пишущим транзакциям, в которых пользователю не позволяется использоваться курсоры для 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)
. -
Для совместимости с GCC 15.x в режиме C23 изменен порядок указания атрибутов функций.
Изменение поведения:
- При невозможности отвязки курсора от его текущей транзакции функция
mdbx_cursor_bind()
теперь возвращаетMDBX_EINVAL
вместоMDBX_BAD_TXN
.
Прочие доработки:
-
Во избежание потенциальных проблем отключено использование
copy_file_range()
на ядрах Linux 5.3 - 5.18. -
Вброс
std::invalid_argument
теперь производится явным сообщениемMDBX_EINVAL
. -
Уточнен тип адреса для пожертвований. Ethereum/ERC-20 позволяет перечислять не только ETH, но и другие валюты/токены, в том числе USDC.
-
Дополнен тест курсоров extra/cursor-closing.
-
В
NOTICE
обновлена информация о Github.
Загрузки:
-
327K, libmdbx-amalgamated-0.13.6.zpaq, sha256sum:
513ef9db6a5f9887d3f786a4a29cd4a77e68b816226ab2cff6648e00f5208332
-
441K, libmdbx-amalgamated-0.13.6.tar.xz, sha256sum:
57db987de6f7ccc66a66ae28a7bda9f9fbb48ac5fb9279bcca92fd5de13075d1
За информацией о предыдущих версиях обращайтесь к тегам git и ChangeLog.