I've used lua-resty-http to make making the request easier.
When using both body_filter_by_lua and content_by_lua_block it's impossible to use APIs like ngx.flush(true) if there is any buffering going on. Eventually even if the flush code is only within content_by_lua blocks openresty complains about that API being disabled in body_filter_by_lua phases.
Note that you don't have to be actually doing anything in the body_filter_by_lua block at all. Simply having it defined causes the bug to occur.
You can run the some reproduction repo against 1.19 docker iamges and it work fine, however anything greater and it breaks.
We've been attempting to upgrade some legacy code to a newer version of openresty and hit a road block getting to anything greater then 1.19
We've found an issue that exists in any version greater then openresty 1.19 when using
body_filter_by_lua
andcontent_by_lua_block
blocks.I've created a reproduction case here - https://github.com/cdloh/body_filter_by_lua-bug-openresty
I've used lua-resty-http to make making the request easier.
When using both
body_filter_by_lua
andcontent_by_lua_block
it's impossible to use APIs likengx.flush(true)
if there is any buffering going on. Eventually even if the flush code is only within content_by_lua blocks openresty complains about that API being disabled inbody_filter_by_lua
phases.Note that you don't have to be actually doing anything in the
body_filter_by_lua
block at all. Simply having it defined causes the bug to occur.You can run the some reproduction repo against 1.19 docker iamges and it work fine, however anything greater and it breaks.