openresty / lua-resty-dns

DNS resolver for the nginx lua module
324 stars 107 forks source link

Test case failing on rhel 7.6 ppc64le platform #49

Open SantoshMagdum opened 5 years ago

SantoshMagdum commented 5 years ago

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
SantoshMagdum commented 5 years ago

Hi All, Please share any pointers you have on way to resolve the above failures. Thanks in advance.