nic-6443 opened a new pull request, #13890:
URL: https://github.com/apache/apisix/pull/13890

   ### Description
   
   Bumps `APISIX_RUNTIME` to 1.3.18, with the version guard and the two 
`apisix-runtime-debug` checksums in `ci/linux-install-openresty.sh`.
   
   The only component that moves is **ngx_multi_upstream_module 1.3.3 → 1.3.4** 
(api7/ngx_multi_upstream_module#22), a use-after-free that crashes the worker. 
`ngx_http_multi_upstream_connection_close()` destroyed `c->pool` and then 
called `ngx_close_connection(c)`, which still logs through `c->log` — and for 
these upstream connections `c->log` lives in the pool that was just released, 
so `ngx_reusable_connection()` reads a freed `ngx_log_t`:
   
   ```
   #0  ngx_write_fd (fd=<error reading variable: Cannot access memory ...>)
   #1  ngx_log_error_core (fmt="reusable connection: %ui")
   #2  ngx_reusable_connection (c=..., reusable=0)
   #3  ngx_close_connection (c=...)
   #4  ngx_http_multi_upstream_connection_close (c=...)
   ```
   
   It surfaces here as an intermittent SIGSEGV in 
`t/plugin/dubbo-proxy/upstream.t` TEST 1, which took out the 
`t/plugin/[a-k]*.t` shard once during #13863. Running that file five times 
locally: 2 crashes on 1.3.17, 0 on 1.3.18.
   
   Checksums were taken from the published release artifacts:
   
   ```
   0d7cbe27cd0303c6f6b3cad27338a697cf2e2e809ceeac9a57b2d1fb78a3a20e  
apisix-runtime-debug_1.3.18-0.debianbookworm-slim_amd64.deb
   a7cf5040837e4d34f456e97ff9b858ce64bf95e3b2f647f5d3021de5a9770741  
apisix-runtime-debug_1.3.18-0.debianbookworm-slim_arm64.deb
   ```
   
   #### Which issue(s) this PR fixes:
   
   N/A
   
   ### Checklist
   
   - [x] I have explained the need for this PR and the problem it solves
   - [x] I have explained the changes or the new features added to this PR
   - [ ] I have added tests corresponding to this change
   - [ ] I have updated the documentation to reflect this change
   - [x] I have verified that this change is backward compatible (If not, 
please discuss on the [APISIX mailing 
list](https://github.com/apache/apisix/tree/master#community) first)
   
   The whole suite runs against the new runtime, which is the coverage a 
version bump can have; the crash it fixes has no APISIX-side surface to assert 
on beyond the dubbo test that already exercises it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to