Нужна простая помощь в тестировании движка Key-Value (libmdbx), erthink, 12-Июл-19, 22:04 [смотреть все]Прошу помочь в тестировании key-value движка MDBX. Хватит даже полудохлой (в разумных пределах) виртуалки с установленным компилятором C++, make и компрессором lz4 для логов.Достаточно клонировать репозиторий и запустить «на выходные» скрипт, т.е. выполнить три команды: git clone https://github.com/leo-yuriev/libmdbx cd libmdbx ./test/long_stochastic.sh ВАЖНО: будет почищен каталог /dev/shm !!! Поэтому, если у вас работает какой-нибудь postgresql, то его следует остановить. Как вариант - закомментировать в скрипте соответствующую строку. Немного пояснений: - тест стохастический «от легкого к тяжелому». - тест работает в памяти, потому нагрузит memory bandwidth и CPU, но не диск. - тест сам подстроится под размер ОЗУ. - тест можно считать «бесконечным» и прервать/перезапустить когда он станет мешать. - чем больше (суммарно) отработает тест, тем тщательнее будет проверка. В случае сбоя нужно быть готовым предоставить инфу: - «последний экран» вывода в терминал и lz4-файл из /dev/shm. - минимальную информацию о системе (версию компилятора и т.п.) - технически это лучше делать через заведение issue на github, а остальные варианты обсуждать здесь. На всякий: - комбинаторная сложность возможных состояний БД и последовательности операций такова, что примерно невозможно проверить все варианты. - в такой ситуации стохастический тест (со случайным поведением) является разумным компромиссом. - соответственно, «коллективное стохастическое тестирование» будет плюсом к собственным тестам (которые периодически прогоняются по нескольку сотен часов). Всем добра.
|
- Нужна простая помощь в тестировании движка Key-Value (libmdbx), universite, 23:13 , 12-Июл-19 (1)
> Прошу помочь в тестировании key-value движка MDBX. Хватит даже полудохлой (в разумных > пределах) виртуалки с установленным компилятором C++, make и компрессором lz4 для > логов.Сколько денег за тесты?
- Нужна простая помощь в тестировании движка Key-Value (libmdbx), erthink, 23:20 , 12-Июл-19 (2) –2
>> Прошу помочь в тестировании key-value движка MDBX. Хватит даже полудохлой (в разумных >> пределах) виртуалки с установленным компилятором C++, make и компрессором lz4 для >> логов. > Сколько денег за тесты?0. Иначе пост был-бы в разделе "работа".
- Нужна простая помощь в тестировании движка Key-Value (libmdbx), test, 08:05 , 13-Июл-19 (3)
cc -O2 -g3 -Wall -Werror -Wextra -ffunction-sections -fPIC -fvisibility=hidden -D_GNU_SOURCE=1 -std=gnu11 -pthread -DNDEBUG=1 -DMDBX_DEBUG=0 -DLIBMDBX_EXPORTS=1 -I. tutorial/sample-mdbx.c ./libmdbx.so -o example rm -f /dev/shm/mdbx-test.db /dev/shm/mdbx-test.log && (set -o pipefail; ./mdbx_test --repeat=42 --pathname=/dev/shm/mdbx-test.db --dont-cleanup-after basic | tee -a /dev/shm/mdbx-test.log | tail -n 42) \ && ./mdbx_chk -vvn /dev/shm/mdbx-test.db && ./mdbx_chk -vvn /dev/shm/mdbx-test.db-copy [ 11005 child_9.9 fail ] mdbx_env_open() failed: Function not implemented (38) [ 10999 child_3.3 fail ] mdbx_env_open() failed: Function not implemented (38) [ 11004 child_8.8 fail ] mdbx_env_open() failed: Function not implemented (38) [ 10998 child_2.2 fail ] mdbx_env_open() failed: Function not implemented (38) [ 10997 child_1.1 fail ] mdbx_env_open() failed: Function not implemented (38) [ 11000 child_4.4 fail ] mdbx_env_open() failed: Function not implemented (38) [ 190713-13:00:25.026593_10994 main info ] config-dump: limits: readers 42, tables 42 [ 190713-13:00:25.026598_10994 main info ] config-dump: drop table: No [ 190713-13:00:25.026602_10994 main info ] config-dump: ignore MDBX_MAP_FULL error: No [ 190713-13:00:25.026606_10994 main info ] config-dump: #9, testcase append, space_id/table 9 [ 190713-13:00:25.026612_10994 main info ] config-dump: log: level 3, console [ 190713-13:00:25.026616_10994 main info ] config-dump: database: /dev/shm/mdbx-test.db, size 268435456[-1..-1, -1 -1, -1] [ 190713-13:00:25.026622_10994 main info ] config-dump: mode: 0x7984000 = mapasync, nosubdir, writemap, nordahead, nomeminit, coalesce, lifo [ 190713-13:00:25.026629_10994 main info ] config-dump: table: 0x4 = data.dups [ 190713-13:00:25.026635_10994 main info ] config-dump: iterations/records 1000 [ 190713-13:00:25.026639_10994 main info ] config-dump: repeat 42 [ 190713-13:00:25.026644_10994 main info ] config-dump: threads 1 [ 190713-13:00:25.026648_10994 main info ] config-dump: keygen.params: case random, width 32, mesh 32, rotate 3, offset 41, split 16/16 [ 190713-13:00:25.026653_10994 main info ] config-dump: keygen.seed: 1 [ 190713-13:00:25.026658_10994 main info ] config-dump: key: minlen 0, maxlen 990 [ 190713-13:00:25.026662_10994 main info ] config-dump: data: minlen 0, maxlen 990 [ 190713-13:00:25.026667_10994 main info ] config-dump: batch: read 42, write 42 [ 190713-13:00:25.026671_10994 main info ] config-dump: no-delay [ 190713-13:00:25.026676_10994 main info ] config-dump: no-inject-writefault [ 190713-13:00:25.026680_10994 main info ] config-dump: limits: readers 42, tables 42 [ 190713-13:00:25.026684_10994 main info ] config-dump: drop table: No [ 190713-13:00:25.026689_10994 main info ] config-dump: ignore MDBX_MAP_FULL error: No [ 190713-13:00:25.026693_10994 main info ] config-dump: timeout: INFINITE [ 190713-13:00:25.026698_10994 main info ] config-dump: cleanup: before Yes, after No [ 190713-13:00:25.026703_10994 main info ] config-dump: failfast: Yes [ 190713-13:00:25.026707_10994 main info ] config-dump: progress indicator: Yes [ 190713-13:00:25.043661_11005 child_9.9 fail ] mdbx_env_open() failed: Function not implemented (38) [ 190713-13:00:25.043736_10999 child_3.3 fail ] mdbx_env_open() failed: Function not implemented (38) [ 190713-13:00:25.044187_11004 child_8.8 fail ] mdbx_env_open() failed: Function not implemented (38) [ 190713-13:00:25.045076_10998 child_2.2 fail ] mdbx_env_open() failed: Function not implemented (38) [ 190713-13:00:25.045329_10997 child_1.1 fail ] mdbx_env_open() failed: Function not implemented (38) [ 190713-13:00:25.045561_11000 child_4.4 fail ] mdbx_env_open() failed: Function not implemented (38) [ 190713-13:00:25.046074_10994 overlord info ] actor #8, id 8, pid 11004: failed [ 190713-13:00:25.046319_10994 overlord info ] actor #6, id 6, pid 11002: killed [ 190713-13:00:25.046535_10994 overlord info ] actor #4, id 4, pid 11000: killed [ 190713-13:00:25.046728_10994 overlord info ] actor #5, id 5, pid 11001: killed [ 190713-13:00:25.046935_10994 overlord info ] actor #2, id 2, pid 10998: killed [ 190713-13:00:25.047155_10994 overlord info ] actor #3, id 3, pid 10999: killed [ 190713-13:00:25.047561_10994 overlord info ] actor #1, id 1, pid 10997: killed [ 190713-13:00:25.048007_10994 overlord info ] actor #7, id 7, pid 11003: killed [ 190713-13:00:25.050584_10994 overlord info ] actor #9, id 9, pid 11005: killed [ 190713-13:00:25.050633_10994 overlord noti ] RESULT: Failed [ 190713-13:00:25.050641_10994 overlord info ] skip cleanup make: *** [check] Ошибка 1
- Нужна простая помощь в тестировании движка Key-Value (libmdbx), erthink, 11:48 , 13-Июл-19 (4) –3
> [ 11005 child_9.9 fail ] mdbx_env_open() failed: Function not implemented (38) А какое ядро и glibc?
- Нужна простая помощь в тестировании движка Key-Value (libmdbx), test, 03:56 , 16-Июл-19 (5)
>> [ 11005 child_9.9 fail ] mdbx_env_open() failed: Function not implemented (38) > А какое ядро и glibc?ядро 4.19 самосбор, centos7 x64
- Нужна простая помощь в тестировании движка Key-Value (libmdbx), erthink, 12:16 , 16-Июл-19 (6) –1
> [ 11005 child_9.9 fail ] mdbx_env_open() failed: Function not implemented (38) > ядро 4.19 самосбор, centos7 x64Тогда понятно откуда "Function not implemented (38)". Но хотелось бы получить strace.log после "strace -o strace.log -f ./mdbx_test --repeat=42 --pathname=/dev/shm/mdbx-test.db --dont-cleanup-after --hill --copy". Это позволит понять чего именно не хватает в вашем ядре для mdbx (предположительно madvise). А далее понять можно ли без этого обойтись и стоит ли поддерживать такие режимы работы. P.S. Пока это единственная проблема, найденная коллективным тестированием.
- Нужна простая помощь в тестировании движка Key-Value (libmdbx), erthink, 01:44 , 09-Дек-19 (7)
На всякий: - выясненно, что проблема была в madvise(), который иногда отключают. - актуальная версия игнорирует ENOSYS от madvise().
|