This is an automated email from the ASF dual-hosted git repository.
nic-6443 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/master by this push:
new f194355694 ci: bump apisix-runtime to 1.3.9 (#13695)
f194355694 is described below
commit f194355694b467139b3514ab71229a955da6802c
Author: Nic <[email protected]>
AuthorDate: Tue Jul 14 11:04:19 2026 +0800
ci: bump apisix-runtime to 1.3.9 (#13695)
---
.requirements | 2 +-
ci/linux-install-openresty.sh | 6 +++---
t/cli/test_status_api.sh | 10 ++++++++++
t/plugin/client-control.t | 27 ++++++++++++++++++++++-----
4 files changed, 36 insertions(+), 9 deletions(-)
diff --git a/.requirements b/.requirements
index 1e23078f82..f4f33c1a01 100644
--- a/.requirements
+++ b/.requirements
@@ -17,5 +17,5 @@
APISIX_PACKAGE_NAME=apisix
-APISIX_RUNTIME=1.3.8
+APISIX_RUNTIME=1.3.9
APISIX_DASHBOARD_COMMIT=c8d3466d3c36386d3888efbc8250cd8183c77298
diff --git a/ci/linux-install-openresty.sh b/ci/linux-install-openresty.sh
index 7db860dbb8..441a140afa 100755
--- a/ci/linux-install-openresty.sh
+++ b/ci/linux-install-openresty.sh
@@ -61,7 +61,7 @@ else
sudo apt-get -y update --fix-missing
sudo apt-get install -y build-essential gcc g++ cpanminus libxml2-dev
libxslt-dev
- if [ "$APISIX_RUNTIME" != "1.3.8" ]; then
+ if [ "$APISIX_RUNTIME" != "1.3.9" ]; then
echo "Please update the apisix-runtime-debug checksum for
APISIX_RUNTIME=$APISIX_RUNTIME" >&2
exit 1
fi
@@ -69,11 +69,11 @@ else
case "$ARCH" in
x86_64|amd64)
DEB_ARCH="amd64"
-
EXPECTED_SHA256="d617eb9dbabdaa97c9722c7b48260aa26d121c280ecbb2c5e1bdeebc6fbeeb8e"
+
EXPECTED_SHA256="e76eab50d0a84e0f018ff5c7338bc13f8b7e5a25b48856daf02472f11b2dacc7"
;;
arm64|aarch64)
DEB_ARCH="arm64"
-
EXPECTED_SHA256="4e263650a6bfb773b53ebf5643fed791d21115e92b4b370d0cd6d43c58fd870c"
+
EXPECTED_SHA256="eb781f57505d8ddb436c94142dd0f4538a4977c249f1bb81b69d31d2356f83a6"
;;
*)
echo "Unsupported architecture: $ARCH" >&2
diff --git a/t/cli/test_status_api.sh b/t/cli/test_status_api.sh
index c7b1a272be..03f8a88685 100755
--- a/t/cli/test_status_api.sh
+++ b/t/cli/test_status_api.sh
@@ -59,6 +59,16 @@ sleep 2
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:7085/status/ready |
grep 200 \
|| (echo "failed: status/ready api didn't return 200"; exit 1)
+# The status server listens with enable_process=privileged_agent. On a buggy
+# runtime the privileged agent closes an already-closed listen fd during
startup
+# and logs "[emerg] ... Bad file descriptor" (apisix-nginx-module#116). A clean
+# start must not contain it.
+if grep -q "Bad file descriptor" logs/error.log; then
+ echo "failed: privileged agent hit EBADF on a listen fd
(apisix-nginx-module#116)"
+ exit 1
+fi
+echo "passed: no 'Bad file descriptor' from the privileged agent listener"
+
# stop two etcd endpoints but status api should return 200 as all workers are
synced
docker stop ${ETCD_NAME_0}
docker stop ${ETCD_NAME_1}
diff --git a/t/plugin/client-control.t b/t/plugin/client-control.t
index 48dca8b0d6..caf84ca3ce 100644
--- a/t/plugin/client-control.t
+++ b/t/plugin/client-control.t
@@ -189,7 +189,24 @@ POST /hello
-=== TEST 8: setup global rule with body reader and route with client-control
+=== TEST 8: 0 means no limit, chunked request body is not rejected
+Regression for api7/apisix-nginx-module#115 (apache/apisix#13673): with
+client-control max_body_size 0, a chunked request body must not be
+rejected with 413.
+--- more_headers
+Transfer-Encoding: chunked
+--- request eval
+qq{POST /hello
+6\r
+Hello \r
+0\r
+\r
+}
+--- error_code: 200
+
+
+
+=== TEST 9: setup global rule with body reader and route with client-control
The global rule reads the body in access phase (simulates a logger with
include_req_body). The route has client-control raising the body size limit
above test-nginx's hardcoded 30M so the body read succeeds.
@@ -252,7 +269,7 @@ passed
-=== TEST 9: client-control should override body limit before global rule reads
body
+=== TEST 10: client-control should override body limit before global rule
reads body
With the global rules phase split, client-control runs in route rewrite
(setting FFI override to 50MB) before the global rule access phase reads
the body. The body exceeds test-nginx's hardcoded 30M but is within the
@@ -266,7 +283,7 @@ the body. The body exceeds test-nginx's hardcoded 30M but
is within the
-=== TEST 10: remove client-control from route
+=== TEST 11: remove client-control from route
--- upstream_server_config
client_max_body_size 0;
--- config
@@ -300,7 +317,7 @@ passed
-=== TEST 11: without client-control, body exceeds hardcoded 30M limit
+=== TEST 12: without client-control, body exceeds hardcoded 30M limit
Without client-control the FFI override is not set, so the global rule's
read_body() triggers the hardcoded 30M body size check. The same body
that succeeded in TEST 9 now gets rejected with 413.
@@ -315,7 +332,7 @@ client intended to send too large body
-=== TEST 12: cleanup global rules
+=== TEST 13: cleanup global rules
--- upstream_server_config
client_max_body_size 0;
--- config