Леонид Юрьев (Leonid Yuriev)
b75e16f4f8
mdbx: устранение null-dereference регресса в режиме readonly-without-lck.
2025-01-12 02:58:59 +03:00
Леонид Юрьев (Leonid Yuriev)
dcc8708d6a
mdbx: дополнение ChangeLog (запланирован выпуск v0.13.3).
2025-01-11 02:35:48 +03:00
Леонид Юрьев (Leonid Yuriev)
9c8f90b713
mdbx: доработка эвристик для выбора/подстройки default-значений в mdbx_env_set_geometry()
.
2025-01-11 02:30:53 +03:00
Леонид Юрьев (Leonid Yuriev)
820bd45818
mdbx++: использование только default
-значений для геометрии по-умолчанию вместо min/max.
2025-01-10 23:50:05 +03:00
Леонид Юрьев (Leonid Yuriev)
3a02ca88ea
mdbx-make: добавление цели ctest
и её привязка к make check
.
2025-01-10 23:50:05 +03:00
Леонид Юрьев (Leonid Yuriev)
16997a88b0
mdbx-tests: уменьшение кол-ва итераций в crunched-delete.
2025-01-10 23:50:05 +03:00
Леонид Юрьев (Leonid Yuriev)
b00e8ea13f
mdbx: использование txl_contain()
в audit()
.
2025-01-08 13:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
faa9753d2d
mdbx: перемещение и корректировка комментария размечающего внутренние поля пишущей транзакции.
2025-01-05 14:44:00 +03:00
Леонид Юрьев (Leonid Yuriev)
5ba257fafc
mdbx: добавление упущенного static
для txl_reserve()
.
2025-01-05 14:44:00 +03:00
Леонид Юрьев (Leonid Yuriev)
bad6e3c2e2
mdbx: очистка флажка ENV_TXKEY
внутри rthc_dtor()
.
...
На штатную работу это никак не влияет, но немного облегчит разбор
ситуаций когда глобальный конструктор не вызывается, либо делается
попытка вызвать его дважды (из-за ошибок rtc/libc, etc).
2025-01-05 14:40:56 +03:00
Леонид Юрьев (Leonid Yuriev)
5350ed8a3b
mdbx: дополнение ChangeLog.
2025-01-04 11:54:11 +03:00
Леонид Юрьев (Leonid Yuriev)
fef7c25a65
mdbx-make: mkdir -p
для повторной сборки без очистки.
2025-01-04 11:54:07 +03:00
Леонид Юрьев (Leonid Yuriev)
10ac9a9c50
mdbx-tests: добавление extra/txn
.
2025-01-04 04:01:41 +03:00
Леонид Юрьев (Leonid Yuriev)
dc98f06d2c
mdbx: логирование и возврат MDBX_INCOMPATIBLE
при попытке запуска вложенных транзакций в режиме MDBX_WRITEMAP
.
2025-01-03 22:14:00 +03:00
Леонид Юрьев (Leonid Yuriev)
0a364aefbb
mdbx++: добавление txn::make_broken()
.
2025-01-03 22:14:00 +03:00
Леонид Юрьев (Leonid Yuriev)
1bf008ac16
mdbx: доработка контроля потока-владельца транзакции.
...
1. Теперь допускается commit/abort вложенных транзакций из любого треда в режиме MDBX_NOSTICKYTHREADS.
2. Более наглядные/явные проверки без зависимости от больше/меньше.
Одна проверка внутри check_txn() для всех основных случаев (bad_bits != 0) и две проверки для abort/reset/break (bad_bits == 0).
+-------------------------------------------------------------------------------------------------------+
| Три анализируемых txn->flags | Проверка txn->owner == osal_thread_self() |
+-----------------+------------+--------------+-----------------------+---------------------------------+
| NOSTICKYTHREADS | TXN_RDONLY | TXN_FINISHED | usual (bad_bits != 0) | abort/reset/break (bad_bits==0) |
| - | - | - | + | + |
| - | - | + | + | + |
| - | + | - | + | + |
| - | + | + | + | - |
| + | - | - | - | - |
| + | - | + | + | + |
| + | + | - | - | - |
| + | + | + | + | - |
+-------------------------------------------------------------------------------------------------------+
2025-01-03 22:12:17 +03:00
Леонид Юрьев (Leonid Yuriev)
1e4e2eb3c8
mdbx-doc: исправление опечатки в комментарии.
2024-12-29 08:42:48 +03:00
Леонид Юрьев (Leonid Yuriev)
63dba2876d
mdbx-doc: корректировка описания значения по-умолчанию MDBX_opt_txn_dp_limit
.
2024-12-28 22:56:17 +03:00
Леонид Юрьев (Leonid Yuriev)
5ff5080935
mdbx: дополнение ChangeLog.
2024-12-28 09:52:19 +03:00
Леонид Юрьев (Leonid Yuriev)
df8b15f639
mdbx: const
для транзакции в txn_take_gcprof()
.
2024-12-28 09:38:08 +03:00
Леонид Юрьев (Leonid Yuriev)
26f6fd351a
mdbx: подстройка dirty-pages-limit при старте транзакций.
2024-12-27 09:39:36 +03:00
Леонид Юрьев (Leonid Yuriev)
c8c541649c
mdbx: доработка контроля длины ключа внутри cursor_seek()
.
...
Ранее проверка внутри cursor_seek() не позволяла искать ключи длиннее чем можно поместить в таблицу,
что при поиске/позиционировании не является ошибкой для ключей переменного размера.
2024-12-27 09:39:36 +03:00
Леонид Юрьев (Leonid Yuriev)
98b28213ce
mdbx: корректировка ChangeLog.
2024-12-22 18:30:58 +03:00
Леонид Юрьев (Leonid Yuriev)
214f5d4de4
mdbx: дополнение README.
2024-12-22 18:30:38 +03:00
Леонид Юрьев (Leonid Yuriev)
00c5bbcc5e
mdbx: дополнение ChangeLog.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
471b14a147
mdbx-tests: проверка случая повторного закрытия dbi-хендла.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
bfc6795762
mdbx: устранение регресса не-отпускания мьютекса при попытки повторного закрытия dbi-хендла.
...
Ошибка была внесена 2024-10-23 коммитом v0.13.1-35-g3049bb87b5b14d83b16d121c186ce8fb3f21383e.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
a76e06a48e
mdbx: исправление несогласованности MDBX_DPL_PREALLOC_FOR_RADIXSORT
и assert-проверки внутри dpl_bytes2size()
.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
b9e4c1ea73
mdbx: вычленение txl_contain()
.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
bc56a613ab
mdbx: чистка исходников pnl/dpl/txl.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
225fb79eb2
mdbx: переименование repnl/retxl.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
ffb7918525
mdbx: понижение уровня логирования "reserve depleted" при обновлении GC.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
0339aa56d9
mdbx: перенос prefault_write_activated
в транзакцию.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
4059686534
mdbx: опечатки в комментариях.
2024-12-22 10:39:49 +03:00
Леонид Юрьев (Leonid Yuriev)
ab57ce7d5f
mdbx: добавление ссылки на новые привязки к Python.
2024-12-21 19:36:54 +03:00
Леонид Юрьев (Leonid Yuriev)
462af2be48
mdbx: исправление ошибки редактирования README.
2024-12-20 11:46:01 +03:00
Леонид Юрьев (Leonid Yuriev)
d3a27d27f6
mdbx-doc: добавление yandex-метрики в генерируемый html.
2024-12-19 17:49:40 +03:00
Леонид Юрьев (Leonid Yuriev)
0d1c08677d
mdbx: корректировка ChangeLog.
2024-12-18 13:01:52 +03:00
Леонид Юрьев (Leonid Yuriev)
e43cf69a0c
mdbx-doc: изменение базы ссылок online-перевода с gitflic.ru
на libmdbx.dqdkfa.ru
.
2024-12-18 12:27:37 +03:00
Леонид Юрьев (Leonid Yuriev)
891fa1d435
mdbx: корректировка doxygen-комментариев.
2024-12-18 01:25:50 +03:00
Леонид Юрьев (Leonid Yuriev)
5a9eea8acc
mdbx: дополнение ChangeLog.
2024-12-18 01:21:00 +03:00
Леонид Юрьев (Leonid Yuriev)
e15079ec68
mdbx: изменение log_if_error()
ради устранения ложных "may be used uninitialized" предупреждений в LTO-сборках.
...
При включении LTO анализатор путей выполнения внутри GCC начинает укачивать из-за выражений вида `return LOG_IFERR(MDBX_EINVAL);`
Проблема в том, что несмотря на __builtin_assume() и __builtin_unreachable(), комплятор не хочет
видеть что функция log_if_error() всегда возвращает получаемое значение. А если допустить что значение
будет изменено, то вместо ошибки может быть MDBX_SUCCESS, и тогда в вызывающем как-бы может произойти
обращение к неинициализированным данным, что и беспокоит компилятор.
Например, при сборке mdbx_load:
‘txn_info.txn_space_dirty’ may be used uninitialized [-Wmaybe-uninitialized]
Проэтому проще пойти анализатору навстречу и упростить исходный код.
Теперь код ошибки явно пробрасывается через тело inline-функции, но это
требует 1-2 дополнительных процессорных инструкции на каждое применение
макроса LOG_IFERROR.
Также здесь откатывается коммит 81a8127084d9a6a7777bb375e029062330e51979.
2024-12-17 22:00:33 +03:00
Леонид Юрьев (Leonid Yuriev)
ba6df2bb6d
mdbx: выделение API-функций в api-файлы.
2024-12-17 19:00:39 +03:00
Леонид Юрьев (Leonid Yuriev)
4607184999
mdbx: макрос osal_malloc_usable_size()
вместо непосредственного использования malloc_usable_size()
.
2024-12-17 18:58:44 +03:00
Леонид Юрьев (Leonid Yuriev)
5168c80be8
mdbx: сбор затрат на pnl_merge()
при включении MDBX_ENABLE_PROFGC
.
2024-12-17 18:54:58 +03:00
Леонид Юрьев (Leonid Yuriev)
6ed4dcb4ea
mdbx: добавление отладочных сообщений при возврате ошибок из API.
2024-12-16 13:31:07 +03:00
Леонид Юрьев (Leonid Yuriev)
122562cf9c
mdbx-tests: переименование опции data.dups
в data.multi
.
2024-12-16 12:16:11 +03:00
Леонид Юрьев (Leonid Yuriev)
526ed28de1
mdbx: добавление mdbx_cursor_count_ex()
в API.
2024-12-16 11:54:24 +03:00
Леонид Юрьев (Leonid Yuriev)
90b187c3ba
mdbx: добавление проверок в inner_hollow()
.
2024-12-16 11:30:10 +03:00
Леонид Юрьев (Leonid Yuriev)
a845522db7
mdbx: исправление регресса состояния dupsort-курсора после cursor_put(APPEND)
.
...
При добавлении нового ключа в append-режиме, в случае когда в текущей
(последней) позиции с ключом связаны несколько значений и
(соответственно) вложенный dupsort-курсор инициализирован, вставка
происходила без сброса вложенного курсора.
В результате вложенный курсор логически оставался стоять на
multivalue-данных связанных с предыдущей позицией основного курсора,
т.е. переходил в неконсистентное состояние.
Ошибка проявлялась возвратом неверных значений из mdbx_cursor_count()
или срабатывание assert-проверки в отладочных сборках.
2024-12-15 22:17:12 +03:00