redis / redis-benchmarks-specification

The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[SPEC]: Test failures on the Linux/ARM64 platform

odidev opened this issue · comments

commented

Improvement/Addition type

What changes to the current SPEC does this issue focuses upon?

  • [] Add a benchmark variant
  • [] Improve a benchmark variant
  • [] Raise awareness for a new Redis benchmark tool
  • [] Suggest a different Redis Build Variant
  • [ * ] Other (fill details in section bellow)

Detail the requested use-case

I am working with redis-benchmark-specification on the Linux/ARM64 Ubuntu AWS instance.
I am following this documentation < https://github.com/redis/redis-benchmarks-specification#development > to execute tests with tox.
Out of 26 tests, 2 tests are failing, as can be seen from the logs below:

utils/tests/test_self_contained_coordinator.py ....F                                                                                                                                     [ 80%] 
utils/tests/test_self_contained_coordinator_memtier.py F..                                                                                                                               [ 92%] 

These 2 test cases are failing for the same assertion issue (while comparing the value of “result”) after calling the function “test_self_contained_coordinator_blocking_read()” in files test_self_contained_coordinator_memtier.py and test_self_contained_coordinator.py.

=================================================================================== short test summary info ==================================================================================== 
FAILED utils/tests/test_self_contained_coordinator.py::test_self_contained_coordinator_blocking_read - assert False == True 
FAILED utils/tests/test_self_contained_coordinator_memtier.py::test_self_contained_coordinator_blocking_read - assert False == True 
==================================================================== 2 failed, 24 passed, 249 warnings in 567.41s (0:09:27) ==================================================================== 
ERROR: InvocationError for command /home/ubuntu/redis-benchmarks-specification/.tox/integration-tests/bin/coverage run '--include=redis_benchmarks_specification/*' -m pytest -ra (exited with code 1) 

On further debugging, it looks like the tests are failing to run docker container using image redislabs/memtier_benchmark:edge here < https://github.com/redis/redis-benchmarks-specification/blob/main/redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py#L1025 >, as this docker image is not available for the Linux/ARM64 platform at DockerHub.

I have added a comment in this already raised ticker < RedisLabs/memtier_benchmark#213 > in the memtier-benchmark GitHub repo, requesting the same.

Can you please provide some pointers whether my analysis seems correct?

Also, may I know, are you interested in adding Linux/ARM64 platform support to redis-benchmark-specification? Kindly provide your suggestions on the same.

Screenshots/CLI snippets of what's expected to happen
If applicable, add screenshots to help explain your problem. For example a chart.

Detail the used benchmark tool

What benchamrk tool to use:

  • [] memtier_benchmark
  • [] redis-benchmark
  • [] redis-benchmark-go
  • [] Other (name it):

Sample benchmark tool command to implement the requested use-case:

$ git clone https://github.com/redis/redis-benchmarks-specification.git && cd redis-benchmarks-specification
$ pip install poetry
$ poetry install
$ poetry run black .
$ poetry run flake8
$ pip3 install -r ./dev_requirements.txt
$ tox

Additional context
Add any other context about the problem here.

commented

I built multi-arch memtier-benchmark docker image using Dockerfile here < https://github.com/RedisLabs/memtier_benchmark/blob/master/Dockerfile > and replaced “redislabs/memtier_benchmark:edge” with my image in the source code. Also, installed and started redis-server on port 6379. Now, all 26 tests are passing via tox on the Linux/ARM64 platform.

========================================================================= 26 passed, 255 warnings in 437.64s (0:07:17) =========================================================================
integration-tests run-test: commands[4] | coverage report -m
Name                                                                                          Stmts   Miss  Cover   Missing
---------------------------------------------------------------------------------------------------------------------------
redis_benchmarks_specification/__api__/__init__.py                                                0      0   100%
redis_benchmarks_specification/__api__/app.py                                                   118     17    86%   46-49, 54, 59-67, 76, 78, 115
redis_benchmarks_specification/__builder__/__init__.py                                            0      0   100%
redis_benchmarks_specification/__builder__/builder.py                                           191     58    70%   54-144, 167-168, 195, 222, 231-236, 241-258, 270, 296, 342, 373, 381-387, 424-430, 439
redis_benchmarks_specification/__builder__/schema.py                                             13      0   100%
redis_benchmarks_specification/__cli__/__init__.py                                                0      0   100%
redis_benchmarks_specification/__cli__/args.py                                                   38      0   100%
redis_benchmarks_specification/__cli__/cli.py                                                   122     33    73%   44-55, 90, 108, 129-135, 158, 188, 194, 207, 215-230, 243-277
redis_benchmarks_specification/__cli__/stats.py                                                 317    308     3%   20-502
redis_benchmarks_specification/__common__/__init__.py                                             0      0   100%
redis_benchmarks_specification/__common__/builder_schema.py                                      86     11    87%   53, 81-86, 103-106, 114, 151
redis_benchmarks_specification/__common__/env.py                                                 45      1    98%   79
redis_benchmarks_specification/__common__/package.py                                             19     11    42%   10-21
redis_benchmarks_specification/__common__/runner.py                                              84     13    85%   22, 27, 29-40, 45, 50-51, 119-120
redis_benchmarks_specification/__common__/spec.py                                                22      0   100%
redis_benchmarks_specification/__init__.py                                                        6      2    67%   14-15
redis_benchmarks_specification/__runner__/__init__.py                                             0      0   100%
redis_benchmarks_specification/__runner__/args.py                                                47      0   100%
redis_benchmarks_specification/__runner__/runner.py                                             430    156    64%   92-100, 105-106, 142-150, 166-174, 177, 235, 251-254, 266-314, 380, 389-390, 420, 436-460, 473-480, 500, 505-510, 522-532, 537-554, 564-570, 573-574, 577-601, 620-621, 627, 651, 692-695, 719-736, 795-797, 864-873, 877-886, 889-899, 903, 908-909, 929-938, 941, 953, 982-987, 991-997, 1066-1172
redis_benchmarks_specification/__self_contained_coordinator__/__init__.py                         0      0   100%
redis_benchmarks_specification/__self_contained_coordinator__/args.py                            34     31     9%   25-153
redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py                       12      0   100%
redis_benchmarks_specification/__self_contained_coordinator__/build_info.py                      41      3    93%   21, 37, 42
redis_benchmarks_specification/__self_contained_coordinator__/clients.py                          8      0   100%
redis_benchmarks_specification/__self_contained_coordinator__/cpuset.py                          11      0   100%
redis_benchmarks_specification/__self_contained_coordinator__/docker.py                          27     14    48%   37-46, 59-90
redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py                   22     14    36%   28-86
redis_benchmarks_specification/__self_contained_coordinator__/runners.py                        195    158    19%   88-89, 120-621
redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py     333    137    59%   98-252, 315, 351, 359, 385, 440-448, 452, 463-468, 529-538, 620, 751-831, 838, 902-920, 935-945, 957-973, 1055-1060
redis_benchmarks_specification/__setups__/__init__.py                                             0      0   100%
redis_benchmarks_specification/__setups__/topologies.py                                          13      0   100%
---------------------------------------------------------------------------------------------------------------------------
TOTAL                                                                                          2234    967    57%
integration-tests docker: remove 'd6f48015f9' (from 'datasink')
integration-tests docker: remove '4ec0386d4c' (from 'db_server')
___________________________________________________________________________________________ summary ____________________________________________________________________________________________
  integration-tests: commands succeeded
  congratulations :)

commented

Closing this ticket since the redislabs/memtier-benchmark:edge docker image is now available for multi-arch platform at docker hub, and the above issue got resolved.