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

Reply via email to