Name | Modified | Size | Downloads / 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(-)
Благодарности:
- Erigon за спонсорство.
- Артёму Воротникову за сообщение об ошибках и тестировании призязок для Rust.
Исправления:
-
Устранена критическая ошибка в функционале
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-машинах.
-
В стохастическом скрипте реализован случайный порядок запуска отдельных тестов.
Загрузки:
-
328K, libmdbx-amalgamated-0.13.7.zpaq, sha256sum:
008ea1fa6ec5effe22fa212b497ef9abed60ab3f02b1191397b380ab394af496
-
442K, libmdbx-amalgamated-0.13.7.tar.xz, sha256sum:
d00c1287ec6bbc366363ccdd3eea97bd470ccb5cc102d56b341f84a9fba7e8e9
За информацией о предыдущих версиях обращайтесь к тегам git и ChangeLog.