openresty / openresty/lua-resty-dns

Test case failing on rhel 7.6 ppc64le platform

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

Nobody has claimed this yet.

Dominant language
Lua
Stars
338
Forks
107
Avg merge
1h 29m
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=-O2 --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 --with-debug --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-dns-0.21' like below -

[root]# pwd
/usr/openresty/openresty/openresty-1.17.1.1rc0/build/lua-resty-dns-0.21
[root]# prove -r t

NOTE: The 'lua-resty-dns' version is 0.21 which was downloaded as part of openresty bundle.

I am getting below test case failures. The errors "lua udp socket read timed out" repeats for all failing test cases but I have kept below uniq errors.

	[root@ lua-resty-dns-0.21]# prove -r t/
	t/mock.t .... ok
	t/sanity.t .. 1/102
	#   Failed test 'ERROR: client socket timed out - TEST 9: TXT query (with ans)
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 2062.

	#   Failed test 'TEST 9: TXT query (with ans) - status code ok'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 948.
	#          got: ''
	#     expected: '200'

	#   Failed test 'TEST 9: TXT query (with ans) - response_body_like - response is expected ()'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1635.
	#                   ''
	#     doesn't match '(?^s:^records: \[\{.*?"txt":"v=spf\d+\s[^"]+".*?\}\]$)'

	#   Failed test 'TEST 9: TXT query (with ans) - pattern "[error]" should not match any line in error.log but matches line "2019/10/16 14:57:46 [error] 3799\#0: *1 lua udp socket read timed out, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0)
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua udp socket handle error
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua udp socket waking up the current request
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua udp operation done, resuming lua thread
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua udp socket calling prepare retvals handler 0000000010165BA0, u:000000006EDAD528
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua udp socket receive return value handler
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua udp socket error retval handler
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua run thread, top:9 c:1
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 send: fd:13 27 of 27
	# 2019/10/16 14:57:46 [debug] 3799\#0: *1 lua udp socket calling receive() method
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1280.
	t/sanity.t .. 5/102
	#   Failed test 'ERROR: client socket timed out - TEST 9: TXT query (with ans)
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 2062.

	#   Failed test 'TEST 9: TXT query (with ans) - status code ok'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 948.
	#          got: ''
	#     expected: '200'

	#   Failed test 'TEST 9: TXT query (with ans) - response_body_like - response is expected ()'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1635.
	#                   ''
	#     doesn't match '(?^s:^records: \[\{.*?"txt":"v=spf\d+\s[^"]+".*?\}\]$)'

	#   Failed test 'TEST 9: TXT query (with ans) - pattern "[error]" should not match any line in error.log but matches line "2019/10/16 14:57:48 [error] 3799\#0: *1 lua udp socket read timed out, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1)
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua udp socket handle error
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua udp socket waking up the current request
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua udp operation done, resuming lua thread
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua udp socket calling prepare retvals handler 0000000010165BA0, u:000000006EDAD528
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua udp socket receive return value handler
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua udp socket error retval handler
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua run thread, top:9 c:1
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 send: fd:13 27 of 27
	# 2019/10/16 14:57:48 [debug] 3799\#0: *1 lua udp socket calling receive() method
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1280.

	#   Failed test 'TEST 9: TXT query (with ans) - pattern "[error]" should not match any line in error.log but matches line "2019/10/16 14:57:49 [error] 3799\#0: *3 lua udp socket read timed out, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1)
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua udp socket handle error
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua udp socket waking up the current request
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua udp operation done, resuming lua thread
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua udp socket calling prepare retvals handler 0000000010165BA0, u:000000006ED94FB0
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua udp socket receive return value handler
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua udp socket error retval handler
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua run thread, top:9 c:1
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 send: fd:15 27 of 27
	# 2019/10/16 14:57:49 [debug] 3799\#0: *3 lua udp socket calling receive() method
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1280.

	#   Failed test 'TEST 9: TXT query (with ans) - pattern "[error]" should not match any line in error.log but matches line "2019/10/16 14:57:50 [error] 3799\#0: *1 lua udp socket read timed out, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1)
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua udp socket handle error
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua udp socket waking up the current request
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua udp operation done, resuming lua thread
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua udp socket calling prepare retvals handler 0000000010165BA0, u:000000006EDAD528
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua udp socket receive return value handler
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua udp socket error retval handler
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua run thread, top:9 c:1
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 send: fd:13 27 of 27
	# 2019/10/16 14:57:50 [debug] 3799\#0: *1 lua udp socket calling receive() method
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1280.
	t/sanity.t .. 11/102
	#   Failed test 'ERROR: client socket timed out - TEST 17: SOA records
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 2062.

	#   Failed test 'TEST 17: SOA records - status code ok'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 948.
	#          got: ''
	#     expected: '200'

	#   Failed test 'TEST 17: SOA records - response_body_like - response is expected ()'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1635.
	#                   ''
	#     doesn't match '(?^s:^records: \[(?:{"class":1,"expire":\d+,"minimum":\d+,"mname":"ns\d+\.google\.com","name":"google\.com","refresh":\d+,"retry":\d+,"rname":"dns-admin\.google\.com","section":2,"serial":\d+,"ttl":\d+,"type":6},?)+\]$)'

	#   Failed test 'TEST 17: SOA records - pattern "[error]" should not match any line in error.log but matches line "2019/10/16 14:57:52 [error] 3912\#0: *1 lua udp socket read timed out, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0)
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua udp socket handle error
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua udp socket waking up the current request
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua udp operation done, resuming lua thread
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua udp socket calling prepare retvals handler 0000000010165BA0, u:000000000AA8D528
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua udp socket receive return value handler
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua udp socket error retval handler
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua run thread, top:9 c:1
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 send: fd:13 32 of 32
	# 2019/10/16 14:57:52 [debug] 3912\#0: *1 lua udp socket calling receive() method
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1280.
	t/sanity.t .. 15/102
	#   Failed test 'ERROR: client socket timed out - TEST 17: SOA records
	# '
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 2062.

	#   Failed test 'TEST 17: SOA records - status code ok'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 948.
	#          got: ''
	#     expected: '200'

	#   Failed test 'TEST 17: SOA records - response_body_like - response is expected ()'
	#   at /usr/local/share/perl5/Test/Nginx/Socket.pm line 1635.
	#                   ''
	#     doesn't match '(?^s:^records: \[(?:{"class":1,"expire":\d+,"minimum":\d+,"mname":"ns\d+\.google\.com","name":"google\.com","refresh":\d+,"retry":\d+,"rname":"dns-admin\.google\.com","section":2,"serial":\d+,"ttl":\d+,"type":6},?)+\]$)'


	Test Summary Report
	-------------------
	t/sanity.t (Wstat: 0 Tests: 154 Failed: 130)
	  Failed tests:  1-30, 37-56, 63-82, 95-154
	  Parse errors: Bad plan.  You planned 102 tests but ran 154.
	Files=2, Tests=410, 101 wallclock secs ( 0.15 usr  0.02 sys +  2.64 cusr  1.18 csys =  3.99 CPU)
	Result: FAIL
	[root@pts00450-vm1 lua-resty-dns-0.21]#

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-debug --with-cc-opt='-DNGX_LUA_USE_ASSERT -DNGX_LUA_ABORT_AT_PANIC -O2 -O2' --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/sanity.t and t/mock.t, then run prove -r t on the RHEL 7.6 ppc64le setup described in the report. Compare the failing DNS cases and timeout logs with the test harness output; done means the reported tests complete successfully or the required environment and limitation are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua, nginx
Domain
networking, 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.