Skip to content

bugfix: lua panic handling in ngx.socket.tcp

4dd7974
Select commit
Loading
Failed to load commit list.
Open

bugfix: lua panic handling in ngx.socket.tcp #2376

bugfix: lua panic handling in ngx.socket.tcp
4dd7974
Select commit
Loading
Failed to load commit list.
Travis CI / Travis CI - Pull Request failed Apr 14, 2025 in 4m 24s

Build Failed

The build failed. This is a change from the previous build, which canceled.

Details

This is a pull request build.

It is running a build against the merge commit, after merging #2376 bugfix: lua panic handling in ngx.socket.tcp.
Any changes that have been made to the master branch before the build ran are also included.

Jobs and Stages

This build has six jobs, running in parallel.

Job Compiler ENV OS State
5181.1 gcc JOBS=3 Linux failed
5181.2 gcc JOBS=3 Linux failed
5181.3 gcc JOBS=3 Linux failed
5181.4 gcc JOBS=3 Linux failed
5181.5 gcc JOBS=3 Linux failed
5181.6 gcc JOBS=3 Linux failed

Build Configuration

Build Option Setting
Language C
Operating System Linux (Focal)
Compiler Version gcc
Build Configuration
{
  "language": "c",
  "os": [
    "linux"
  ],
  "dist": "focal",
  "branches": {
    "only": [
      "master"
    ]
  },
  "compiler": [
    "gcc"
  ],
  "addons": {
    "apt": {
      "packages": [
        "ack",
        "axel",
        "cpanminus",
        "libtest-base-perl",
        "libtext-diff-perl",
        "liburi-perl",
        "libwww-perl",
        "libtest-longstring-perl",
        "liblist-moreutils-perl",
        "libgd-dev",
        "time",
        "cmake",
        "libunwind-dev",
        "wget",
        "libbrotli1"
      ]
    }
  },
  "cache": {
    "directories": [
      "download-cache"
    ]
  },
  "env": [
    "global={:JOBS=>\"3\"}={:NGX_BUILD_JOBS=>\"$JOBS\"}={:LUAJIT_PREFIX=>\"/opt/luajit21\"}={:LUAJIT_LIB=>\"$LUAJIT_PREFIX/lib\"}={:LUAJIT_INC=>\"$LUAJIT_PREFIX/include/luajit-2.1\"}={:LUA_INCLUDE_DIR=>\"$LUAJIT_INC\"}={:PCRE_PREFIX=>\"/opt/pcre\"}={:PCRE2_PREFIX=>\"/opt/pcre2\"}={:PCRE_LIB=>\"$PCRE_PREFIX/lib\"}={:PCRE2_LIB=>\"$PCRE2_PREFIX/lib\"}={:PCRE_INC=>\"$PCRE_PREFIX/include\"}={:PCRE2_INC=>\"$PCRE2_PREFIX/include\"}={:OPENSSL_PREFIX=>\"/opt/ssl\"}={:OPENSSL_LIB=>\"$OPENSSL_PREFIX/lib\"}={:OPENSSL_INC=>\"$OPENSSL_PREFIX/include\"}={:LIBDRIZZLE_PREFIX=>\"/opt/drizzle\"}={:LIBDRIZZLE_INC=>\"$LIBDRIZZLE_PREFIX/include/libdrizzle-1.0\"}={:LIBDRIZZLE_LIB=>\"$LIBDRIZZLE_PREFIX/lib\"}={:LD_LIBRARY_PATH=>\"$LUAJIT_LIB:$LD_LIBRARY_PATH\"}={:DRIZZLE_VER=>\"2011.07.21\"}={:TEST_NGINX_SLEEP=>\"0.006\"}={:MALLOC_PERTURB_=>\"9\"} jobs={:NGINX_VERSION=>\"1.27.1\", :OPENSSL_VER=>\"1.1.1w\", :OPENSSL_PATCH_VER=>\"1.1.1f\", :TEST_NGINX_TIMEOUT=>\"5\", :PCRE_VER=>\"8.45\"}={:NGINX_VERSION=>\"1.27.1\", :OPENSSL_VER=>\"3.0.15\", :OPENSSL_PATCH_VER=>\"3.0.15\", :TEST_NGINX_TIMEOUT=>\"5\", :PCRE2_VER=>\"10.42\"}={:NGINX_VERSION=>\"1.27.1\", :OPENSSL_VER=>\"1.1.1w\", :OPENSSL_PATCH_VER=>\"1.1.1f\", :TEST_NGINX_TIMEOUT=>\"5\", :PCRE_VER=>\"8.45\", :TEST_NGINX_USE_HTTP2=>\"1\"}={:NGINX_VERSION=>\"1.27.1\", :OPENSSL_VER=>\"3.0.15\", :OPENSSL_PATCH_VER=>\"3.0.15\", :TEST_NGINX_TIMEOUT=>\"5\", :PCRE2_VER=>\"10.42\", :TEST_NGINX_USE_HTTP2=>\"1\"}={:NGINX_VERSION=>\"1.27.1\", :OPENSSL_VER=>\"3.0.15\", :OPENSSL_PATCH_VER=>\"3.0.15\", :TEST_NGINX_USE_HTTP3=>\"1\", :TEST_NGINX_QUIC_IDLE_TIMEOUT=>\"3\", :PCRE2_VER=>\"10.42\"}={:NGINX_VERSION=>\"1.27.1\", :BORINGSSL=>\"1\", :TEST_NGINX_USE_HTTP3=>\"1\", :TEST_NGINX_QUIC_IDLE_TIMEOUT=>\"3\", :PCRE2_VER=>\"10.42\"}"
  ],
  "services": [
    "memcached",
    "redis",
    "mysql"
  ],
  "before_install": [
    "! grep -n -P '(?<=.{80}).+' --color `find src -name '*.c'` `find . -name '*.h'` || (echo \"ERROR: Found C source lines exceeding 80 columns.\" > /dev/stderr; exit 1)",
    "! grep -n -P '\\t+' --color `find src -name '*.c'` `find . -name '*.h'` || (echo \"ERROR: Cannot use tabs.\" > /dev/stderr; exit 1)",
    "/usr/bin/env perl $(command -v cpanm) --sudo --notest Test::Nginx IPC::Run > build.log 2>&1 || (cat build.log && exit 1)"
  ],
  "install": [
    "if [ ! -f download-cache/drizzle7-$DRIZZLE_VER.tar.gz ]; then wget -P download-cache https://github.com/openresty/openresty-deps-prebuild/releases/download/v20230902/drizzle7-$DRIZZLE_VER.tar.gz; fi",
    "if [ -n \"$OPENSSL_VER\" ]; then wget https://github.com/openresty/openresty-deps-prebuild/releases/download/v1.0.0/openssl-${OPENSSL_VER}-x64-focal.tar.gz; fi",
    "if [ -n \"$PCRE_VER\" ]; then wget https://github.com/openresty/openresty-deps-prebuild/releases/download/v1.0.0/pcre-${PCRE_VER}-x64-focal.tar.gz; fi",
    "if [ -n \"$PCRE2_VER\" ]; then wget https://github.com/openresty/openresty-deps-prebuild/releases/download/v1.0.0/pcre2-${PCRE2_VER}-x64-focal.tar.gz; fi",
    "wget https://github.com/openresty/openresty-deps-prebuild/releases/download/v20230902/boringssl-20230902-x64-focal.tar.gz",
    "wget https://github.com/openresty/openresty-deps-prebuild/releases/download/v20230902/curl-h3-x64-focal.tar.gz",
    "git clone https://github.com/openresty/test-nginx.git",
    "git clone https://github.com/openresty/openresty.git ../openresty",
    "git clone https://github.com/openresty/no-pool-nginx.git ../no-pool-nginx",
    "git clone https://github.com/openresty/openresty-devel-utils.git",
    "git clone https://github.com/openresty/mockeagain.git",
    "git clone https://github.com/openresty/lua-cjson.git lua-cjson",
    "git clone https://github.com/openresty/lua-upstream-nginx-module.git ../lua-upstream-nginx-module",
    "git clone https://github.com/openresty/echo-nginx-module.git ../echo-nginx-module",
    "git clone https://github.com/openresty/nginx-eval-module.git ../nginx-eval-module",
    "git clone https://github.com/simpl/ngx_devel_kit.git ../ndk-nginx-module",
    "git clone https://github.com/FRiCKLE/ngx_coolkit.git ../coolkit-nginx-module",
    "git clone https://github.com/openresty/headers-more-nginx-module.git ../headers-more-nginx-module",
    "git clone https://github.com/openresty/drizzle-nginx-module.git ../drizzle-nginx-module",
    "git clone https://github.com/openresty/set-misc-nginx-module.git ../set-misc-nginx-module",
    "git clone https://github.com/openresty/memc-nginx-module.git ../memc-nginx-module",
    "git clone https://github.com/openresty/rds-json-nginx-module.git ../rds-json-nginx-module",
    "git clone https://github.com/openresty/srcache-nginx-module.git ../srcache-nginx-module",
    "git clone https://github.com/openresty/redis2-nginx-module.git ../redis2-nginx-module",
    "git clone https://github.com/openresty/lua-resty-core.git ../lua-resty-core",
    "git clone https://github.com/openresty/lua-resty-lrucache.git ../lua-resty-lrucache",
    "git clone https://github.com/openresty/lua-resty-mysql.git ../lua-resty-mysql",
    "git clone https://github.com/spacewander/lua-resty-rsa.git ../lua-resty-rsa",
    "git clone https://github.com/openresty/lua-resty-string.git ../lua-resty-string",
    "git clone https://github.com/openresty/stream-lua-nginx-module.git ../stream-lua-nginx-module",
    "git clone -b v2.1-agentzh https://github.com/openresty/luajit2.git luajit2"
  ],
  "before_script": [
    "mysql -uroot -e \"create database ngx_test; CREATE USER 'ngx_test'@'%' IDENTIFIED WITH mysql_native_password BY 'ngx_test'; grant all on ngx_test.* to 'ngx_test'@'%'; flush privileges;\""
  ],
  "script": [
    "sudo tar -C / -xf curl-h3-x64-focal.tar.gz",
    "export PATH=$PWD/work/nginx/sbin:$PWD/openresty-devel-utils:/opt/curl-h3/bin:$PATH",
    "ngx-releng > check.txt || true",
    "lines=`wc -l check.txt | awk '{print $1}'`; if [ $lines -gt 5 ]; then cat check.txt; exit 1; fi",
    "sudo iptables -I OUTPUT 1 -p udp --dport 10086 -j REJECT",
    "sudo iptables -I OUTPUT -p tcp --dst 127.0.0.2 --dport 12345 -j DROP",
    "sudo iptables -I OUTPUT -p udp --dst 127.0.0.2 --dport 12345 -j DROP",
    "sudo ip route add prohibit 0.0.0.1/32",
    "sudo sysctl -w kernel.pid_max=10000",
    "cd luajit2/",
    "make -j$JOBS CCDEBUG=-g Q= PREFIX=$LUAJIT_PREFIX CC=$CC XCFLAGS='-DLUA_USE_APICHECK -DLUA_USE_ASSERT -msse4.2' > build.log 2>&1 || (cat build.log && exit 1)",
    "sudo make install PREFIX=$LUAJIT_PREFIX > build.log 2>&1 || (cat build.log && exit 1)",
    "cd ..",
    "tar xzf download-cache/drizzle7-$DRIZZLE_VER.tar.gz && cd drizzle7-$DRIZZLE_VER",
    "./configure --prefix=$LIBDRIZZLE_PREFIX --without-server > build.log 2>&1 || (cat build.log && exit 1)",
    "make libdrizzle-1.0 -j$JOBS > build.log 2>&1 || (cat build.log && exit 1)",
    "sudo make install-libdrizzle-1.0 > build.log 2>&1 || (cat build.log && exit 1)",
    "cd ../mockeagain/ && make CC=$CC -j$JOBS && cd ..",
    "cd lua-cjson/ && make -j$JOBS && sudo make install && cd ..",
    "if [ -n \"$BORINGSSL\" ]; then sudo mkdir -p /opt/ssl && sudo tar -C /opt/ssl -xf boringssl-20230902-x64-focal.tar.gz --strip-components=1; fi",
    "if [ -n \"$OPENSSL_VER\" ]; then sudo mkdir -p /opt/ssl && sudo tar -C /opt/ssl -xf openssl-$OPENSSL_VER-x64-focal.tar.gz --strip-components=2; fi",
    "if [ -n \"$PCRE_VER\" ]; then sudo mkdir -p $PCRE_PREFIX && sudo tar -C $PCRE_PREFIX -xf pcre-$PCRE_VER-x64-focal.tar.gz --strip-components=2; fi",
    "if [ -n \"$PCRE2_VER\" ]; then sudo mkdir -p $PCRE2_PREFIX && sudo tar -C $PCRE2_PREFIX -xf pcre2-$PCRE2_VER-x64-focal.tar.gz --strip-components=2; fi",
    "export NGX_BUILD_CC=$CC",
    "sh util/build-without-ssl.sh $NGINX_VERSION > build.log 2>&1 || (cat build.log && exit 1)",
    "sh util/build-with-dd.sh $NGINX_VERSION > build.log 2>&1 || (cat build.log && exit 1)",
    "rm -fr buildroot",
    "sh util/build.sh $NGINX_VERSION > build.log 2>&1 || (cat build.log && exit 1)",
    "nginx -V",
    "python3 ./util/nc_server.py &",
    "ldd `which nginx`|grep -E 'luajit|ssl|pcre'",
    "export LD_PRELOAD=$PWD/mockeagain/mockeagain.so",
    "export LD_LIBRARY_PATH=$PWD/mockeagain:$LD_LIBRARY_PATH",
    "export TEST_NGINX_HTTP3_CRT=$PWD/t/cert/http3/http3.crt",
    "export TEST_NGINX_HTTP3_KEY=$PWD/t/cert/http3/http3.key",
    "export TEST_NGINX_RESOLVER=8.8.4.4",
    "dig +short myip.opendns.com @resolver1.opendns.com || exit 0",
    "dig +short @$TEST_NGINX_RESOLVER openresty.org || exit 0",
    "dig +short @$TEST_NGINX_RESOLVER agentzh.org || exit 0",
    "/usr/bin/env perl $(command -v prove) -I. -Itest-nginx/lib -r t/"
  ]
}