mirror of
https://github.com/isar/libmdbx.git
synced 2025-10-17 09:02:47 +08:00
mdbx: устранение предупреждений Valgrind при логировании в отладочных сборках.
Достаточно запутано: - Внутри `update_gc()` используется создание записей с резервированием посредством `put(MDBX_RESERVE)` в циклах с ранним выходом и последующим заполнением. - При этом в случае раннего выхода (из цикла из-за изменения набора страниц) зарезервированное место в добавленных записях остается незаполненным/неиницилизированным (подкрашенным в Valgrind или ASAN). - Чтение этих незаполненных/неиницилизированных данных штатно не происходит, но в отладочных сборках при включении детального уровне логирования выполняется отладочный вывод значений ключей и данных при позиционировании курсоров. - В свою очередь, `update_gc()` либо удаляет, либо заполняет зарезервированные записи, но для этого требуется позиционирование курсора, что в отладочных сборках приводит к чтению незаполненных/неиницилизированных записей и печали Valgrind/ASAN. Теперь внутри `update_gc()` в отладочных сборках с поддержкой Valgrind или ASAN место в резервируемых записях явно инициализируется.
This commit is contained in:
@@ -47,6 +47,7 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic
|
||||
в сборках с поддержкой Valgrind или включеным ASAN. Для более подробной
|
||||
информации см. [соответствующий коммит](https://gitflic.ru/project/erthink/libmdbx/commit/1aead6869a7eff1a85e400ab3eeecb4c8b904fe6).
|
||||
- Доработка `mdbx_dump_val()` используемой для логирования и отладки.
|
||||
- Устранение предупреждений Valgrind при логировании в отладочных сборках.
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user