Леонид Юрьев (Leonid Yuriev)
2e4962a2f3
mdbx-docs: изменение <title>
и meta-title в index.html
2025-03-20 21:50:53 +03:00
Леонид Юрьев (Leonid Yuriev)
00917f8c96
mdbx: корректировка ChangeLog.
2025-03-20 19:15:56 +03:00
Леонид Юрьев (Leonid Yuriev)
06f8573f5f
mdbx: усиление контроля сигнатур курсоров.
2025-03-20 17:20:47 +03:00
Леонид Юрьев (Leonid Yuriev)
7eb7931a23
mdbx-tests: корректировка обработки прерывания теста посредством SIGTERM
/SIGINT
.
2025-03-20 14:13:20 +03:00
Леонид Юрьев (Leonid Yuriev)
e37194affe
mdbx: дополнение ChangeLog.
2025-03-19 23:50:29 +03:00
Леонид Юрьев (Leonid Yuriev)
917e2827f5
mdbx-tests: кратное сокращение итераций тестов в зависимости от конфигурации Valgrind/Debug/CI.
2025-03-19 23:30:49 +03:00
Леонид Юрьев (Leonid Yuriev)
2fd1772503
mdbx-tests: устранение невыравненного доступа в extra/close-dbi для UBSAN.
2025-03-18 13:14:47 +03:00
Леонид Юрьев (Leonid Yuriev)
694626727f
mdbx: использование cmp_lenfast()
вместо cmp_lenfast()
.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
2aa47f20c3
mdbx-tests: перехват и логирование исключений в extra-C++ тестах.
2025-03-18 10:46:55 +03:00
Leo Yuriev
e6891b295b
mdbx++: minor reflow Doxygen comments.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
c0b1ab1466
mdbx-tests: расширение extra/dupfix-multiple.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
71d95d1a5f
mdbx++: добавление mdbx::cursor::put_multiple_samelength()
.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
7a923b3d41
mdbx: рефакторинг проверок с выносом в cursor_check_multiple()
.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
8008afc6e1
mdbx: поддержка MDBX_MULTIPLE
с нулевым размером данных.
2025-03-18 10:46:55 +03:00
Леонид Юрьев (Leonid Yuriev)
7ae11e0fdb
mdbx++: явное определение external-инстанцирования mdbx::buffer<>
c API-атрибутами.
2025-03-17 23:28:58 +03:00
Леонид Юрьев (Leonid Yuriev)
5c1745a7cd
mdbx: добавление гистограммы количества multi-значений/дубликатов в chk.
2025-03-17 23:28:46 +03:00
Леонид Юрьев (Leonid Yuriev)
23a417fe19
mdbx: исправление регресса в пути обработки MDBX_MULTIPLE
.
...
Пакетная вставка значений посредством операции `MDBX_MULTIPLE` могла
приводить к падениям и повреждению структуры БД. Ошибка оставалось не
замеченной из-за специфических условий проявления, которые не
реализовались в тестах.
Проблема присутствовала во всех выпусках начиная с v0.13.1, но
соответствующая ошибка не связана с конкретным коммита в истории, а
является следствием нескольких доработок (шагов рефакторинга), которые
суммарно привели к регрессу.
Технически ошибка обусловлена не-обнулением переменной, которая не
обнулялась в некотором пути выполнения и исходно не требовала обнуления,
но такое обнуление потребовалось после ряда этапов оптимизации кода и
рефакторинга.
Основным условием проявления является пакетная вставка multi-значений в
dupsort-таблицу с фиксированным размером значений, при котором набор
значений соответствующий обновляемом ключу, перестаёт помещаться на
вложенной странице и преобразуется/выносится во вложенное дерево
страниц. Если такой вынос/преобразование происходило до исчерпания
переданного набора значений, то при следующей итерации повторно
производились действия соответствующие выносу данных в отдельное дерево
страниц. Что могла приводить как к разыменованию неверных указателей
(повреждению содержимого памяти) и/или к повреждению содержимого страниц
образующих структуру БД.
Исправление свелось к добавлению одной строчки кода, но также были
расширены тесты для покрытия соответствующих сценариев.
2025-03-17 23:28:28 +03:00
Леонид Юрьев (Leonid Yuriev)
db44f4ed71
mdbx-tools: добавление опции -c
(concise) в mdbx_dump
.
2025-03-17 23:28:16 +03:00
Леонид Юрьев (Leonid Yuriev)
ef9fd1f3fb
mdbx-tests: уменьшение кол-ва итераций в extra/crunched-delete для 32-битных сборок во избежания MDBX_MAP_FULL
.
2025-03-17 23:27:51 +03:00
Леонид Юрьев (Leonid Yuriev)
2e6d9fd4d4
mdbx++: добавление mdbx::cursor::seek_multiple_samelength()
.
2025-03-17 23:27:34 +03:00
Леонид Юрьев (Leonid Yuriev)
83e42d03bb
mdbx: костыли для CLANG < 20 при использовании [[аттрибутов]]
C23.
2025-03-17 23:27:14 +03:00
Леонид Юрьев (Leonid Yuriev)
dfd265d46f
mdbx-tests: существенное расширение extra/cursor-closing
.
2025-03-17 23:26:49 +03:00
Леонид Юрьев (Leonid Yuriev)
08d10ad0a1
mdbx-tests: дополнение extra/txn.
2025-03-17 23:26:30 +03:00
Леонид Юрьев (Leonid Yuriev)
8ebedde181
mdbx++: проверка __cpp_concepts >= 202002
для использования концептов C++.
2025-03-17 23:26:18 +03:00
Леонид Юрьев (Leonid Yuriev)
dcf35e5306
mdbx: исправление затенения курсоров во вложенных транзакциях.
2025-03-17 23:25:53 +03:00
Леонид Юрьев (Leonid Yuriev)
aeac971f0b
mdbx: переработка проверки курсоров на входе API-функций с добавлением cursor_check()
.
2025-03-17 23:25:30 +03:00
Леонид Юрьев (Leonid Yuriev)
6c8047a402
mdbx: переработка mdbx_txn_release_all_cursors_ex()
.
2025-03-17 23:20:40 +03:00
Леонид Юрьев (Leonid Yuriev)
438d185250
mdbx++: переформатирование (временно) неиспользуемого кода.
2025-03-17 23:20:28 +03:00
Леонид Юрьев (Leonid Yuriev)
ee6843062d
mdbx++: удаление исключения при запросе транзакции у отсоединённого курсора.
2025-03-17 23:20:03 +03:00
Леонид Юрьев (Leonid Yuriev)
70adf71770
mdbx++: добавление inplace_storage_size_rounding
в capacity_policy
для буферов.
2025-03-17 23:16:30 +03:00
Леонид Юрьев (Leonid Yuriev)
fa2c27fa08
mdbx++: добавление mdbx::cursor_managed::withdraw_handle()
.
2025-03-17 23:16:12 +03:00
Леонид Юрьев (Leonid Yuriev)
7a72d1b273
mdbx: корректировка описания MDBX_MVCC_RETARDED
и соответствующего сообщения об ошибке.
2025-03-17 23:15:48 +03:00
Леонид Юрьев (Leonid Yuriev)
3e91500fac
mdbx: устранение гонки в tbl_setup(MDBX_DUPFIXED | MDBX_INTEGERDUP)
при работе в разных потоках.
...
Проблема была в том, что в случаях фиксированного размера значений
clc.lmin/clc.lmax устанавливались в env->kvs[], а затем корректировались
по актуальному размеру данных в БД. Поэтому при конкурентном вызове из
разных потоков, один поток мог выполнять инициализацию, а второй
прочитать временные/промежуточные значения lmin/lmax.
В результате, при конкурентном старте транзакций в разных потоках при
использовании только-что открытого dbi-хендла, проверка допустимости
длины значения могла заканчиваться ложной ошибкой MDBX_BAD_VALSIZE.
2025-03-17 23:13:26 +03:00
Леонид Юрьев (Leonid Yuriev)
546b48b6eb
mdbx: переименование cursor_validate()
.
2025-03-17 23:01:30 +03:00
Леонид Юрьев (Leonid Yuriev)
2ffa5cf371
mdbx: добавление MDBX_SEEK_AND_GET_MULTIPLE
в API операций курсора.
2025-03-17 22:58:57 +03:00
Леонид Юрьев (Leonid Yuriev)
b546dc69d2
mdbx-doc: doxygen-описания для doubtless-positioning констант.
2025-03-17 22:58:44 +03:00
Леонид Юрьев (Leonid Yuriev)
42706c45a0
mdbx-tests: добавление поддержки опции MDBX_VALIDATION
и использование в стохастическом тесте.
2025-03-17 22:58:29 +03:00
Леонид Юрьев (Leonid Yuriev)
8dda33329b
mdbx-tests: поддержка значений on
/off
для опций командной строки.
2025-03-17 22:58:08 +03:00
Леонид Юрьев (Leonid Yuriev)
b2bd8bae38
mdbx: добавление mdbx_cursor_close2()
в API.
2025-03-17 22:57:38 +03:00
Леонид Юрьев (Leonid Yuriev)
1299653457
mdbx: добавление cursor_reset()
и cursor_drown()
.
2025-03-17 22:24:23 +03:00
Леонид Юрьев (Leonid Yuriev)
333069e7a8
mdbx: рефакторинг cursor_eot()
для упрощения txn_done_cursors()
.
2025-03-17 21:38:42 +03:00
Леонид Юрьев (Leonid Yuriev)
436998ca83
mdbx: косметический рефакторинг cursor_shadow()
.
2025-03-17 21:06:45 +03:00
Леонид Юрьев (Leonid Yuriev)
b0665f7016
mdbx: запрещение unbind/close курсоров для вложенных транзакций.
2025-03-17 20:48:19 +03:00
Леонид Юрьев (Leonid Yuriev)
4fcfb07b97
mdbx: корректировка mdbx_panic()
для вывода переданного сообщения через __assert_failed()
.
2025-03-17 20:47:47 +03:00
Леонид Юрьев (Leonid Yuriev)
ca30365d3b
mdbx-make: добавление цели ninja-assertions
и её использование при make check
.
2025-03-17 20:46:44 +03:00
Леонид Юрьев (Leonid Yuriev)
6424747636
mdbx++: использование mdbx_txn_release_all_cursors_ex()
.
2025-03-17 20:45:09 +03:00
Леонид Юрьев (Leonid Yuriev)
183610b050
mdbx-doc: исправление url в sitemap.
2025-03-09 11:41:02 +03:00
Леонид Юрьев (Leonid Yuriev)
920d9b5b2f
mdbx-doc: добавление ld+json
в корневой index.hml
2025-03-05 12:54:51 +03:00
Леонид Юрьев (Leonid Yuriev)
283c962fea
mdbx: исправление опечатки в ChangeLog.
2025-03-05 01:46:57 +03:00
Леонид Юрьев (Leonid Yuriev)
8efcdeae9d
mdbx: исправление опечатки в дате внутри ChangeLog.
2025-03-04 20:06:16 +03:00