openresty / openresty/lua-resty-core

Test case failures on rhel7.6 ppc64le platform

Open
#280 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lua
Stars
853
Forks
286
Avg merge
35m
Merged PRs (30d)
1

Description

Hi All,

I had build the nginx binary on rhel 7.6 ppc64le (version 1.17.1.1rc0) from openresty source code - https://github.com/openresty/openresty
Please note that, I had copied and used ppc64le compiled LuaJIT source code while building openresty (nginx).
Below command I used to compile the openresty -

./configure --with-cc-opt="-DNGX_LUA_USE_ASSERT -DNGX_LUA_ABORT_AT_PANIC" --with-http_image_filter_module --with-http_dav_module  --with-http_auth_request_module --with-poll_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_ssl_module --with-http_iconv_module  --with-http_drizzle_module --with-http_postgres_module --with-http_addition_module --add-module=/usr/openresty/openresty_test_modules/nginx-eval-module --add-module=/usr/openresty/openresty_test_modules/replace-filter-nginx-module

And then tried to execute the test cases for 'lua-resty-core' like below -

# pwd
/usr/santosh/openresty/openresty/openresty-1.17.1.1rc0/build/lua-resty-core-0.1.17
# prove -I/usr/santosh/openresty/test-nginx/lib/ -r t

NOTE: The lua-resty-core version downloaded from openresty bundle is 0.1.17.

But I am getting below kind of errors -

Around 8 test case failures related to timer manipulation -

t/balancer-timeout.t ............... 1/88
#   Failed test 'TEST 1: set_timeouts - grep_error_log_out (req 0)'
#   at /usr/openresty/test-nginx/lib/Test/Nginx/Socket.pm line 1145.
#                   ''
#     doesn't match '(?^:\Aevent timer add: \d+: 1234:
# event timer add: \d+: 5678:
# event timer add: \d+: 7689:
# \z)'

# Looks like you failed 8 tests of 88.
t/balancer-timeout.t ............... Dubious, test returned 8 (wstat 2048, 0x800)
Failed 8/88 subtests

#   Failed test 'TEST 11: keepalive after balancer - grep_error_log_out (req 0)'
#   at /usr/openresty/test-nginx/lib/Test/Nginx/Socket.pm line 1149.
# @@ -1,5 +0,0 @@
# -free keepalive peer: saving connection
# -get keepalive peer: using connection
# -free keepalive peer: saving connection
# -get keepalive peer: using connection
# -free keepalive peer: saving connection

#   Failed test 'TEST 11: keepalive after balancer - grep_error_log_out (req 1)'
#   at /usr/openresty/test-nginx/lib/Test/Nginx/Socket.pm line 1149.
# @@ -1,6 +0,0 @@
# -get keepalive peer: using connection
# -free keepalive peer: saving connection
# -get keepalive peer: using connection
# -free keepalive peer: saving connection
# -get keepalive peer: using connection
# -free keepalive peer: saving connection
t/balancer.t ....................... 135/154 # Looks like you failed 2 tests of 154.
t/balancer.t ....................... Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/154 subtests

And other set of errors shows invalid index for 'opt' field -

t/count.t .......................... nginx: [error] init_by_lua error: init_by_lua:12: attempt to index field 'opt' (a nil value)
stack traceback:
		init_by_lua:12: in main chunk
nginx: [error] init_by_lua error: init_by_lua:12: attempt to index field 'opt' (a nil value)
stack traceback:
		init_by_lua:12: in main chunk
Bailout called.  Further testing stopped:  TEST 1: module size - Cannot start nginx using command "nginx -p /usr/openresty/openresty/openresty-1.17.1.1rc0/build/lua-resty-core-0.1.17/t/servroot/ -c /usr/openresty/openresty/openresty-1.17.1.1rc0/build/lua-resty-core-0.1.17/t/servroot/conf/nginx.conf > /dev/null" (status code 256).

Please help suggest if I need to export any specific environment variable or should try any compiler flag/somehow increase timeout value to make these test cases pass.
Let me know if I should share more information which could help in resolving these test failures.

nginx version (compiled with libdrizzle 1.0 and radius, mariadb, postgresql services setup) -

# nginx -V
nginx version: openresty/1.17.1.1rc0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/openresty/nginx --with-cc-opt='-O2 -DNGX_LUA_USE_ASSERT -DNGX_LUA_ABORT_AT_PANIC' --add-module=../ngx_devel_kit-0.3.1rc1 --add-module=../iconv-nginx-module-0.14 --add-module=../echo-nginx-module-0.61 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.32 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.08 --add-module=../drizzle-nginx-module-0.1.11 --add-module=../ngx_postgres-1.0 --add-module=../srcache-nginx-module-0.31 --add-module=../ngx_lua-0.10.15 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.15 --add-module=../rds-csv-nginx-module-0.09 --add-module=../ngx_stream_lua-0.0.7 --with-ld-opt=-Wl,-rpath,/usr/local/openresty/luajit/lib --with-http_image_filter_module --with-http_dav_module --with-http_auth_request_module --with-poll_module --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-http_ssl_module --with-http_addition_module --add-module=/usr/openresty/openresty_test_modules/nginx-eval-module --add-module=/usr/openresty/openresty_test_modules/replace-filter-nginx-module --with-stream --with-stream_ssl_preread_module

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with t/balancer-timeout.t, t/balancer.t, and t/count.t, then inspect the reported failures through test-nginx/lib/Test/Nginx/Socket.pm. Reproduce the tests on RHEL 7.6 ppc64le with the stated OpenResty and LuaJIT versions, compare the timer, keepalive, and opt-field failures, and establish whether the result is a platform or build-configuration issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, lua, nginx
Domain
backend, operating-systems, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.