openresty / openresty/lua-nginx-module

Test case failures on rhel 7.6 ppc64le platform

Open
#1,608 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
11.8k
Forks
2.1k
Avg merge
6h 1m
Merged PRs (30d)
6

Description

Hi All,

I had build the nginx binary on rhel 7.6 ppc64le (version 1.17.1.1rc0) from source code - https://github.com/openresty/openresty.
Please note that, I had copied and used ppc64le compiled LuaJIT 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-nginx-module' like below -

[root]# pwd
/usr/openresty/openresty_test_modules/lua-nginx-module
[root]# prove -r t

NOTE: The 'lua-nginx-module' source used is the latest one cloned from https://github.com/openresty/lua-nginx-module

           # prove -r t/
	t/000--init.t .......................
	t/000--init.t ....................... ok
	t/000-sanity.t ...................... ok
	t/001-set.t ......................... 58/286 TEST 18: no ngx.location.capture_multi - WARNING: killing the child process 22600 with force... at /usr/local/share/perl5/Test/Nginx/Util.pm line 609.
	t/001-set.t ......................... 69/286 WARNING: TEST 38: user modules using ngx.arg - 2019/10/15 17:08:12 [warn] 22678#0: *1 [lua] _G write guard:12: writing a global lua variable ('foo') which may lead to race conditions between concurrent requests, so prefer the use of 'local' variables
	t/001-set.t ......................... 103/286
	#   Failed test 'TEST 37: globals are shared in all requests. - grep_error_log_out (req 0)'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1149.
	#          got: ''
	#     expected: 'writing a global Lua variable ('foo')
	# '
	WARNING: TEST 37: globals are shared in all requests. - 2019/10/15 17:08:13 [warn] 22706#0: *1 [lua] _G write guard:12: __newindex(): writing a global lua variable ('foo') which may lead to race conditions between concurrent requests, so prefer the use of 'local' variables
	t/001-set.t ......................... 280/286 # Looks like you failed 1 test of 286.
	t/001-set.t ......................... Dubious, test returned 1 (wstat 256, 0x100)
	Failed 1/286 subtests
	t/002-content.t ..................... ok
	t/003-errors.t ...................... ok
	t/004-require.t ..................... 25/40 WARNING: TEST 1: sanity - 2019/10/15 17:08:30 [warn] 23497#0: *1 [lua] _G write guard:12: writing a global lua variable ('foo') which may lead to race conditions between concurrent requests, so prefer the use of 'local' variables
	t/004-require.t ..................... ok
	t/005-exit.t ........................ ok
	t/006-escape.t ...................... 17/60 TEST 12: unescape nil - WARNING: killing the child process 24123 with force... at /usr/local/share/perl5/Test/Nginx/Util.pm line 609.
	t/006-escape.t ...................... ok
	t/007-md5.t ......................... ok
	t/008-today.t ....................... ok
	t/009-log.t ......................... ok
	t/010-request_body.t ................ 29/52 END - WARNING: killing the child process 24865 with force... at /usr/local/share/perl5/Test/Nginx/Util.pm line 609.
	t/010-request_body.t ................ ok
	t/011-md5_bin.t ..................... 35/36 END - WARNING: killing the child process 24992 with force... at /usr/local/share/perl5/Test/Nginx/Util.pm line 609.
	t/011-md5_bin.t ..................... ok
	t/012-now.t ......................... ok
	t/013-base64.t ...................... ok
	t/014-bugs.t ........................ nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	nginx: [crit] ngx_slab_alloc() failed: no memory
	Bailout called.  Further testing stopped:  TEST 28: globals sharing by using _G (log_by_lua*) - Cannot start nginx using command "nginx -p /usr/openresty/openresty_test_modules/lua-nginx-module/t/servroot/ -c /usr/openresty/openresty_test_modules/lua-nginx-module/t/servroot/conf/nginx.conf > /dev/null" (status code 256).
	FAILED--Further testing stopped: TEST 28: globals sharing by using _G (log_by_lua*) - Cannot start nginx using command "nginx -p /usr/openresty/openresty_test_modules/lua-nginx-module/t/servroot/ -c /usr/openresty/openresty_test_modules/lua-nginx-module/t/servroot/conf/nginx.conf > /dev/null" (status code 256).
	[root ]#

Please help suggest if I need to export any specific environment/setup any additional service or should try any compiler flag/somehow increase timeout value to make these test cases pass?

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 by reproducing prove -r t for lua-nginx-module on RHEL 7.6 ppc64le, focusing on the failures in t/001-set.t and t/014-bugs.t. Inspect the missing global-variable warning and the repeated ngx_slab_alloc() errors, then determine whether the failures are platform-specific or caused by the build environment; done means the cause is identified and the affected tests pass or are clearly documented.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.