Skip to content

Commit

Permalink
mdbx-sys 12.10
Browse files Browse the repository at this point in the history
  • Loading branch information
vorot93 committed May 12, 2024
1 parent 1ee87b4 commit dcbbf5e
Show file tree
Hide file tree
Showing 24 changed files with 627 additions and 351 deletions.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ sealed = "0.5"
tempfile = { version = "3", optional = true }
thiserror = "1"

ffi = { package = "mdbx-sys", version = "=12.9.0", path = "./mdbx-sys" }
ffi = { package = "mdbx-sys", version = "=12.10.0", path = "./mdbx-sys" }

lifetimed-bytes = { version = "0.1", optional = true }

Expand Down
2 changes: 1 addition & 1 deletion mdbx-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "mdbx-sys"
version = "12.9.0"
version = "12.10.0"
edition = "2021"
license = "MPL-2.0"
description = "Rust bindings for libmdbx."
Expand Down
2 changes: 1 addition & 1 deletion mdbx-sys/libmdbx/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##
## Copyright 2020-2023 Leonid Yuriev <leo@yuriev.ru>
## Copyright 2020-2024 Leonid Yuriev <leo@yuriev.ru>
## and other libmdbx authors: please see AUTHORS file.
## All rights reserved.
##
Expand Down
80 changes: 80 additions & 0 deletions mdbx-sys/libmdbx/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,86 @@ ChangeLog
English version [by Google](https://gitflic-ru.translate.goog/project/erthink/libmdbx/blob?file=ChangeLog.md&_x_tr_sl=ru&_x_tr_tl=en)
and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md).

## v0.12.10 "СЭМ" от 2024-03-12

Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов
в память Героя России гвардии майора Дмитрия Семёнова с позывным "СЭМ".

```
git diff' stat: 19 commits, 57 files changed, 751 insertions(+), 331 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
```

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

- [Dvir H](https://t.me/Dvirsw) за [сообщение](https://t.me/libmdbx/5368)
об ошибке `MDBX_CORRUPTED` в сценарии работы в режиме `MDBX_DUPFIXED` и нечетной длинной
мульти-значений, с предоставлением точного минимального сценария воспроизведения.

Значимые исправления и доработки:

- Устранение унаследованной от LMDB ошибки приводящей к повреждению БД при использовании `MDBX_DUPFIXED`.
Проблема была выявлена при расширении тестов сценариями с длинными мульти-значениями в режиме `MDBX_DUPFIXED`.
Сообщений о проявлении этой ошибки в эксплуатационных/продуктовых средах не поступало.

На LEAF2-страниц, используемых для компактного хранения мульти-значений фиксированной длины,
выполнялось резервирование места без учета возможности превышения размера страниц,
с последующим переполнением, повреждением структуры БД и/или повреждением содержимого ОЗУ.

Вероятность проявления ошибки существенно увеличивалась с увеличением размера/длины
мульти-значений/дубликатов и уменьшением размера страницы БД. Поэтому при использовании `MDBX_INTEGERDUP`
вероятность проявления близка к нулю, а сценарий такого проявления найти не удалось.

В MDBX ошибка присутствовала с момента отделения проекта от LMDB,
где эта ошибка присутствует более 11 лети, по настоящее время.

- Исправление ложной ошибки `MDBX_CORRUPTED (-30796)` в сценарии работы
в режиме `MDBX_DUPFIXED` и нечетной длинной мульти-значений.

- Исправление недочета корректировки сопутствующих курсоров при разделении страницы
по сценарию добавления пустой страницы слева.

- Доработка `rebalance()` ради уменьшения WAF. Новый функционал, включая
контролируемую пользователем опцию `enum MDBX_option_t`, будет доступен
в выпусках ветки `0.13.x`, а в этом выпуске доработка сводится к тактике
не-вовленичения чистой страницы при нехватке запаса страниц в ходе обновления GC,
за счет ухудшения баланса дерева страниц.

- Устранение упущения приводящего к нелогичной ситуации
`me_dxb_mmap.curren > me_dxb_mmap.limit` при "дребезге" размера БД.
В текущем понимании, последствий кроме срабатывания assert-проверки нет, а
вероятность проявления близка к нулю.

- Исправление в функционале обхода дерева, используемого утилитой
`mdbx_chk`, подсчета места затраченного на выравнивание на вложенной
под-странице, в случае нечетного количества dupfixed-элементов нечетного
размера.
Сообщений о проявлении этой ошибки в эксплуатационных/продуктовых средах не поступало.

- Исправление assert-проверки внутри `check_txn()` для случая завершенных транзакций в режиме `MDBX_NO_TLS`.
Последствий ошибки, кроме срабатывания assert-проверки в отладочных сборках, нет.

- Устранение ошибки при открытии БД на файловой системе только-для-чтения.

- Удалены излишне строгие проверки в утилите `mdbx_chk`, которые
приводили к ложно-позитивным ошибкам при проверке БД после серии
последних доработок. Подробности см в комментариях к коммитам [781b3f64d52b73cbaeb00a55811d1247c25624a8](https://gitflic.ru/project/erthink/libmdbx/commit/781b3f64d52b73cbaeb00a55811d1247c25624a8)
и [0741c81cfd8dc0864fcf55e04192b2207c8f68f7](https://gitflic.ru/project/erthink/libmdbx/commit/0741c81cfd8dc0864fcf55e04192b2207c8f68f7).

Прочее:

- Расширение стохастического теста dupfixed-сценариями.
- Корректировка условия в assert-проверке для `MDBX_TXN_DRAINED_GC`.
- Добавление в jitter-сценарий простого теста сброса и перезапуска читающих транзакций.
- Вынужденное продолжение очистки/рефакторинга унаследованных ребусов в `cursor_put_nochecklen()`.
- Фиксация транзакции при ошибках теста для последующего анализа содержимого БД.
- Сопутствующий рефакторинг `node_shrink()` для ясности исходного кода.
- Приведение в соответствие протоколируемых имен тестов опциям командной строки.
- Добавление cmoke-теста `extra/dupfixed_addodd`.


--------------------------------------------------------------------------------


## v0.12.9 "Ясень-4" от 2023-12-11

Expand Down
2 changes: 1 addition & 1 deletion mdbx-sys/libmdbx/VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.12.9.0
0.12.10.0
2 changes: 1 addition & 1 deletion mdbx-sys/libmdbx/cmake/compiler.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Copyright (c) 2012-2023 Leonid Yuriev <leo@yuriev.ru>.
## Copyright (c) 2012-2024 Leonid Yuriev <leo@yuriev.ru>.
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion mdbx-sys/libmdbx/cmake/profile.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Copyright (c) 2012-2023 Leonid Yuriev <leo@yuriev.ru>.
## Copyright (c) 2012-2024 Leonid Yuriev <leo@yuriev.ru>.
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion mdbx-sys/libmdbx/cmake/utils.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Copyright (c) 2012-2023 Leonid Yuriev <leo@yuriev.ru>.
## Copyright (c) 2012-2024 Leonid Yuriev <leo@yuriev.ru>.
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
Expand Down
4 changes: 2 additions & 2 deletions mdbx-sys/libmdbx/man1/mdbx_chk.1
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.\" Copyright 2015-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015-2024 Leonid Yuriev <leo@yuriev.ru>.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_CHK 1 "2023-10-17" "MDBX 0.12.8"
.TH MDBX_CHK 1 "2024-03-13" "MDBX 0.12.10"
.SH NAME
mdbx_chk \- MDBX checking tool
.SH SYNOPSIS
Expand Down
4 changes: 2 additions & 2 deletions mdbx-sys/libmdbx/man1/mdbx_copy.1
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.\" Copyright 2015-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015-2024 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_COPY 1 "2023-10-17" "MDBX 0.12.8"
.TH MDBX_COPY 1 "2024-03-13" "MDBX 0.12.10"
.SH NAME
mdbx_copy \- MDBX environment copy tool
.SH SYNOPSIS
Expand Down
4 changes: 2 additions & 2 deletions mdbx-sys/libmdbx/man1/mdbx_drop.1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.\" Copyright 2021-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2021-2024 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2014-2021 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_DROP 1 "2023-10-17" "MDBX 0.12.8"
.TH MDBX_DROP 1 "2024-03-13" "MDBX 0.12.10"
.SH NAME
mdbx_drop \- MDBX database delete tool
.SH SYNOPSIS
Expand Down
4 changes: 2 additions & 2 deletions mdbx-sys/libmdbx/man1/mdbx_dump.1
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.\" Copyright 2015-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015-2024 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_DUMP 1 "2023-10-17" "MDBX 0.12.8"
.TH MDBX_DUMP 1 "2024-03-13" "MDBX 0.12.10"
.SH NAME
mdbx_dump \- MDBX environment export tool
.SH SYNOPSIS
Expand Down
4 changes: 2 additions & 2 deletions mdbx-sys/libmdbx/man1/mdbx_load.1
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.\" Copyright 2015-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015-2024 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_LOAD 1 "2023-10-17" "MDBX 0.12.8"
.TH MDBX_LOAD 1 "2024-03-13" "MDBX 0.12.10"
.SH NAME
mdbx_load \- MDBX environment import tool
.SH SYNOPSIS
Expand Down
4 changes: 2 additions & 2 deletions mdbx-sys/libmdbx/man1/mdbx_stat.1
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.\" Copyright 2015-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015-2024 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_STAT 1 "2023-10-17" "MDBX 0.12.8"
.TH MDBX_STAT 1 "2024-03-13" "MDBX 0.12.10"
.SH NAME
mdbx_stat \- MDBX environment status tool
.SH SYNOPSIS
Expand Down
Loading

0 comments on commit dcbbf5e

Please sign in to comment.