openresty / openresty/resty-cli

Test case failures on rhel 7.6 ppc64le platform

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

Nobody has claimed this yet.

Dominant language
Perl
Stars
269
Forks
59
Avg merge
1h 35m
Merged PRs (30d)
2

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 'resty-cli' like below -

[root]# pwd
/usr/openresty/openresty/openresty-1.17.1.1rc0/build/resty-cli-0.25rc2
[root]# prove -r t

NOTE: The 'resty-cli-0.25rc2' version is 0.25 which was downloaded as part of openresty bundle.

I am getting below test case failures -

	# prove -r t/
	t/resty/bugs.t ....... ok
	t/resty/console.t .... ok
	t/resty/options.t .... 34/145
	#   Failed test 'TEST 13: --shdict option - stdout eq okay'
	#   at t/lib/Test/Resty.pm line 175.
	#          got: ''
	#     expected: '32
	# '

	#   Failed test 'TEST 13: --shdict option - stderr eq okay'
	#   at t/lib/Test/Resty.pm line 197.
	#          got: 'nginx: [crit] ngx_slab_alloc() failed: no memory
	# '
	#     expected: ''

	#   Failed test 'TEST 13: --shdict option - exit code okay'
	#   at t/lib/Test/Resty.pm line 217.
	#          got: '1'
	#     expected: '0'

	#   Failed test 'TEST 18: --shdict option permissive format - stdout eq okay'
	#   at t/lib/Test/Resty.pm line 175.
	#          got: ''
	#     expected: '32
	# '

	#   Failed test 'TEST 18: --shdict option permissive format - stderr eq okay'
	#   at t/lib/Test/Resty.pm line 197.
	#          got: 'nginx: [crit] ngx_slab_alloc() failed: no memory
	# '
	#     expected: ''

	#   Failed test 'TEST 18: --shdict option permissive format - exit code okay'
	#   at t/lib/Test/Resty.pm line 217.
	#          got: '1'
	#     expected: '0'
	t/resty/options.t .... 100/145
	#   Failed test 'TEST 41: -j v - stderr eq okay'
	#   at t/lib/Test/Resty.pm line 197.
	#          got: ''
	#     expected: '[TRACE   1 (command line -e):1 loop]
	# '

	#   Failed test 'TEST 42: -j dump - stdout like okay'
	#   at t/lib/Test/Resty.pm line 185.
	#                   ''
	#     doesn't match '(?^ms:TRACE 1 IR.*? TRACE 1 mcode)'
	t/resty/options.t .... 133/145
	#   Failed test 'TEST 45: --gdb-opts - stdout like okay'
	#   at t/lib/Test/Resty.pm line 185.
	#                   'Breakpoint 1 at 0x100267d8: file src/core/nginx.c, line 196.
	# [Thread debugging using libthread_db enabled]
	# Using host libthread_db library "/lib64/libthread_db.so.1".
	#
	# Breakpoint 1, 0x00000000100267d8 in main (argc=5, argv=0x3ffffffff028) at src/core/nginx.c:196
	# 196   {
	# #0  0x00000000100267d8 in main (argc=5, argv=0x3ffffffff028) at src/core/nginx.c:196
	# Breakpoint 2 at 0x3fffb7e36148: file lib_io.c, line 300.
	#
	# Breakpoint 2, 0x00003fffb7e36148 in lj_cf_io_method_write (L=0x1ac5ed18) at lib_io.c:300
	# 300   {
	# #0  0x00003fffb7e36148 in lj_cf_io_method_write (L=0x1ac5ed18) at lib_io.c:300
	# #1  0x00003fffb7df99a0 in lj_BC_FUNCC () from /usr/local/openresty/luajit/lib/libluajit-5.1.so.2
	# #2  0x00003fffb7e10e24 in lua_resume (L=<optimized out>, nargs=<optimized out>) at lj_api.c:1221
	# #3  0x000000001012fec8 in ngx_http_lua_run_thread (L=<optimized out>, r=<optimized out>, ctx=<optimized out>, nrets=1) at ../ngx_lua-0.10.15/src/ngx_http_lua_util.c:1091
	# #4  0x0000000010151d84 in ngx_http_lua_timer_handler (ev=<optimized out>) at ../ngx_lua-0.10.15/src/ngx_http_lua_timer.c:705
	# #5  0x0000000010050850 in ngx_event_expire_timers () at src/event/ngx_event_timer.c:97
	# #6  0x0000000010050148 in ngx_process_events_and_timers (cycle=0x10272fe0) at src/event/ngx_event.c:266
	# #7  0x000000001005bea4 in ngx_single_process_cycle (cycle=0x10272fe0) at src/os/unix/ngx_process_cycle.c:333
	# #8  0x000000001002752c in main (argc=<optimized out>, argv=<optimized out>) at src/core/nginx.c:379
	# '
	#     doesn't match '(?^ms:^Breakpoint 2, lj_cf_io_method_write \(L=0x[0-9a-f]+\) at lib_io\.c:\d+
	# .*
	# \#0  lj_cf_io_method_write \(L=0x[0-9a-f]+\) at lib_io\.c:\d+
	# )'
	STDERR:
	warning: the debug information found in "/usr/lib/debug//lib64/libfreebl3.so.debug" does not match "/lib64/libfreebl3.so" (CRC mismatch).

	warning: the debug information found in "/usr/lib/debug/usr/lib64/libfreebl3.so.debug" does not match "/lib64/libfreebl3.so" (CRC mismatch).



	#   Failed test 'TEST 46: --gdb-opts (leading and trailing spaces) - stdout like okay'
	#   at t/lib/Test/Resty.pm line 185.
	#                   'Breakpoint 1 at 0x100267d8: file src/core/nginx.c, line 196.
	# [Thread debugging using libthread_db enabled]
	# Using host libthread_db library "/lib64/libthread_db.so.1".
	#
	# Breakpoint 1, 0x00000000100267d8 in main (argc=5, argv=0x3ffffffff028) at src/core/nginx.c:196
	# 196   {
	# #0  0x00000000100267d8 in main (argc=5, argv=0x3ffffffff028) at src/core/nginx.c:196
	# Breakpoint 2 at 0x3fffb7e36148: file lib_io.c, line 300.
	#
	# Breakpoint 2, 0x00003fffb7e36148 in lj_cf_io_method_write (L=0x8f40ed18) at lib_io.c:300
	# 300   {
	# #0  0x00003fffb7e36148 in lj_cf_io_method_write (L=0x8f40ed18) at lib_io.c:300
	# #1  0x00003fffb7df99a0 in lj_BC_FUNCC () from /usr/local/openresty/luajit/lib/libluajit-5.1.so.2
	# #2  0x00003fffb7e10e24 in lua_resume (L=<optimized out>, nargs=<optimized out>) at lj_api.c:1221
	# #3  0x000000001012fec8 in ngx_http_lua_run_thread (L=<optimized out>, r=<optimized out>, ctx=<optimized out>, nrets=1) at ../ngx_lua-0.10.15/src/ngx_http_lua_util.c:1091
	# #4  0x0000000010151d84 in ngx_http_lua_timer_handler (ev=<optimized out>) at ../ngx_lua-0.10.15/src/ngx_http_lua_timer.c:705
	# #5  0x0000000010050850 in ngx_event_expire_timers () at src/event/ngx_event_timer.c:97
	# #6  0x0000000010050148 in ngx_process_events_and_timers (cycle=0x10272fe0) at src/event/ngx_event.c:266
	# #7  0x000000001005bea4 in ngx_single_process_cycle (cycle=0x10272fe0) at src/os/unix/ngx_process_cycle.c:333
	# #8  0x000000001002752c in main (argc=<optimized out>, argv=<optimized out>) at src/core/nginx.c:379
	# '
	#     doesn't match '(?^ms:^Breakpoint 2, lj_cf_io_method_write \(L=0x[0-9a-f]+\) at lib_io\.c:\d+
	# .*
	# \#0  lj_cf_io_method_write \(L=0x[0-9a-f]+\) at lib_io\.c:\d+
	# )'
	STDERR:
	warning: the debug information found in "/usr/lib/debug//lib64/libfreebl3.so.debug" does not match "/lib64/libfreebl3.so" (CRC mismatch).

	warning: the debug information found in "/usr/lib/debug/usr/lib64/libfreebl3.so.debug" does not match "/lib64/libfreebl3.so" (CRC mismatch).


	# Looks like you failed 10 tests of 145.
	t/resty/options.t .... Dubious, test returned 10 (wstat 2560, 0xa00)
	Failed 10/145 subtests
	t/resty/sanity.t ..... ok
	t/resty/signals.t .... ok
	t/resty/user-args.t .. ok

	Test Summary Report
	-------------------
	t/resty/options.t  (Wstat: 2560 Tests: 145 Failed: 10)
	  Failed tests:  37-39, 52-54, 122, 124, 133, 135
	  Non-zero exit status: 10
	Files=6, Tests=212,  8 wallclock secs ( 0.08 usr  0.02 sys +  3.84 cusr  1.25 csys =  5.19 CPU)
	Result: FAIL

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 the failures with prove -r t in the resty-cli-0.25rc2 directory on RHEL 7.6 ppc64le. Focus on t/resty/options.t and the assertions in t/lib/Test/Resty.pm, comparing the --shdict and debugger output with the expected results. Done means identifying the platform-specific cause and providing a verified resolution or a documented limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, nginx, perl
Domain
cli, 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.