Download Latest Version libmdbx 0.13.7 _Druzhba_ (Friendship) source code.tar.gz (796.3 kB)
Email in envelope

Get an email when there's a new version of libmdbx

Home / v0.13.7
Name Modified Size InfoDownloads / Week
Parent folder
libmdbx 0.13.7 _Druzhba_ (Friendship) source code.tar.gz 2025-07-30 796.3 kB
libmdbx 0.13.7 _Druzhba_ (Friendship) source code.zip 2025-07-30 899.9 kB
README.md 2025-07-30 6.2 kB
Totals: 3 Items   1.7 MB 1

Поддерживающий выпуск стабильной ветки с исправлением обнаруженных ошибок и устранением недочётов, в международный день дружбы.

For translation to other languages please try Yandex or liar Google.

git diff' stat: 22 files changed, 682 insertions(+), 291 deletions(-)

Благодарности:

Исправления:

  • Устранена критическая ошибка в функционале mdbx_env_resurrect_after_fork() при использовании SysV-семафоров. Проявлялась ошибка только после порождения дочернего процесса посредством fork() на фоне выполняющейся пишущей транзакции, что приводило к неверной работе семафоров и далее к самым различным ошибкам, вплоть до повреждения БД. Проблема существовала начиная с появления mdbx_env_resurrect_after_fork() и затрагивала OSX, а также POSIX-платформы при сборке с опцией MDBX_LOCKING=5.

  • Устранена проблема в API копирования БД на отличных от Linux системах POSIX, а также в некоторых случаях при расположении целевого файла на не-локальной файловой системе. Проблема проявлялась в основном на OSX, возвратом ошибки EWOULDBLOCK/EAGAIN (35), что обусловлено недочетом/конфликтом блокировок fcntl(F_SETLK) и flock() в ядре ОС. Переработана обработка ошибок захвата файловых блокировок в API копирования на системах POSIX.

  • Устранена ошибка приводившая к неожиданному возврату MDBX_BAD_DBI при одновременном старте нескольких транзакций внутри одного процесса после открытия БД.

  • Устранена ошибка приводившая к неожиданному возврату MDBX_DBS_FULL при повторном открытии уже открытых таблиц и уже достигнутом лимите открытых DBI-дескрипторов.

  • Исправлена ошибка сборки для платформы Android при явном определении _FILE_OFFSET_BITS.

  • Исправлена ошибка использования ENOMEM вместо MDBX_ENOMEM. Что могло ломать сборку на не-POSIX/Windows платформах, в зависимости от конфигурации и/или версии SDK.

  • Поправлено либо удалено несколько неверных assert-проверок, из-за которых происходили падения отладочных сборок в специфических ситуациях. Главным образом, в коде функций txn_end(), txn_lock() и txn_unlock() как на Windows, так и на POSIX.

  • Устранены несущественные предупреждения MSVC. Отключены предупреждения C5286 и C5287.

Прочие доработки:

  • Доработана логика отказа от использования OFD-блокировок на POSIX-платформах. Теперь кроме EINVAL учитываются дополнительные коды ошибок (ENOSYS, ENOIMPL, ENOTSUP, ENOSUPP, EOPNOTSUPP), что позволит работать собранной библиотеке в некоторых случаях, когда актуальное ядро/контейнер/эмулятор не поддерживает требуемых системных вызовов.

  • В тестовый фреймворк добавлена поддержка опции --numa # для привязки стохастического теста к NUMA-узлу, а в battery/tmux-скрипте добавлено явное распределение по NUMA-узлам, что существенно увеличило КПД при тестировании на NUMA-машинах.

  • В стохастическом скрипте реализован случайный порядок запуска отдельных тестов.

Загрузки:


За информацией о предыдущих версиях обращайтесь к тегам git и ChangeLog.

Please don't use github's tarballs nor zips, but the amalgamated sources or clone the git repository

Source: README.md, updated 2025-07-30