bugfix: nginx crashed when reading request body in multiple light thr… #2451
Travis CI / Travis CI - Pull Request
required action
Oct 14, 2025 in 1m 15s
Build Errored
The build errored, just like the previous build.
Details
This is a pull request build.
It is running a build against the merge commit, after merging #2451 bugfix: nginx crashed when reading request body in multiple light thr….
Any changes that have been made to the master branch before the build ran are also included.
Jobs and Stages
This build has four jobs, running in parallel.
| Job | Compiler | ENV | OS | State |
|---|---|---|---|---|
| gcc | JOBS=3 | Linux | errored | |
| gcc | JOBS=3 | Linux | errored | |
| gcc | JOBS=3 | Linux | errored | |
| gcc | JOBS=3 | Linux | errored |
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",
"lsb-release",
"wget",
"gnupg",
"ca-certificates"
]
}
},
"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\"}={:PCRE2_PREFIX=>\"/opt/pcre2\"}={:PCRE2_LIB=>\"$PCRE2_PREFIX/lib\"}={:PCRE2_INC=>\"$PCRE2_PREFIX/include\"}={:OPENSSL_PREFIX=>\"/opt/openssl3\"}={: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.29.2\", :OPENSSL_VER=>\"3.5.4\", :OPENSSL_PATCH_VER=>\"3.5.4\", :TEST_NGINX_TIMEOUT=>\"5\", :PCRE2_VER=>\"10.46\"}={:NGINX_VERSION=>\"1.29.2\", :OPENSSL_VER=>\"3.5.4\", :OPENSSL_PATCH_VER=>\"3.5.4\", :TEST_NGINX_TIMEOUT=>\"5\", :PCRE2_VER=>\"10.46\", :TEST_NGINX_USE_HTTP2=>\"1\"}={:NGINX_VERSION=>\"1.29.2\", :OPENSSL_VER=>\"3.5.4\", :OPENSSL_PATCH_VER=>\"3.5.4\", :TEST_NGINX_USE_HTTP3=>\"1\", :TEST_NGINX_QUIC_IDLE_TIMEOUT=>\"3\", :PCRE2_VER=>\"10.46\"}={:NGINX_VERSION=>\"1.29.2\", :BORINGSSL=>\"1\", :TEST_NGINX_USE_HTTP3=>\"1\", :TEST_NGINX_QUIC_IDLE_TIMEOUT=>\"3\", :PCRE2_VER=>\"10.46\"}"
],
"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)",
"wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -",
"echo \"deb http://openresty.org/package/ubuntu $(lsb_release -sc) main\" | sudo tee /etc/apt/sources.list.d/openresty.list",
"sudo apt-get update",
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openresty-pcre2 openresty-openssl3 openresty-pcre2-dev openresty-openssl3-dev"
],
"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 \"$PCRE2_VER\" ] && [ ! -f download-cache/pcre2-$PCRE2_VER.tar.gz ]; then wget -P download-cache https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PCRE2_VER}/pcre2-${PCRE2_VER}.tar.gz; fi",
"if [ -n \"$OPENSSL_VER\" ] && [ ! -f download-cache/openssl-$OPENSSL_VER.tar.gz ]; then wget -P download-cache https://github.com/openssl/openssl/releases/download/openssl-$OPENSSL_VER/openssl-$OPENSSL_VER.tar.gz || wget -P download-cache https://www.openssl.org/source/openssl-$OPENSSL_VER.tar.gz || wget -P download-cache https://www.openssl.org/source/old/${OPENSSL_VER//[a-z]/}/openssl-$OPENSSL_VER.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 \"$PCRE2_VER\" ]; then tar zxf download-cache/pcre2-$PCRE2_VER.tar.gz; cd pcre2-$PCRE2_VER/; ./configure --prefix=$PCRE2_PREFIX --enable-jit --enable-utf > build.log 2>&1 || (cat build.log && exit 1); make -j$JOBS > build.log 2>&1 || (cat build.log && exit 1); sudo PATH=$PATH make install > build.log 2>&1 || (cat build.log && exit 1); cd ..; fi",
"if [ -n \"$OPENSSL_VER\" ]; then tar zxf download-cache/openssl-$OPENSSL_VER.tar.gz; cd openssl-$OPENSSL_VER/; patch -p1 < ../../openresty/patches/openssl-$OPENSSL_PATCH_VER-sess_set_get_cb_yield.patch; ./config shared enable-ssl3 enable-ssl3-method -g --prefix=$OPENSSL_PREFIX --libdir=lib -DPURIFY > build.log 2>&1 || (cat build.log && exit 1); make -j$JOBS > build.log 2>&1 || (cat build.log && exit 1); sudo make PATH=$PATH install_sw > build.log 2>&1 || (cat build.log && exit 1); cd ..; fi",
"if [ -n \"$BORINGSSL\" ]; then sudo rm -fr /usr/local/openresty/openssl3/ && sudo mkdir -p /usr/local/openresty/openssl3 && sudo tar -C /usr/local/openresty/openssl3 -xf boringssl-20230902-x64-focal.tar.gz --strip-components=1; 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/inc -Itest-nginx/lib -r t/"
]
}
Loading