Output_buffers value breaks thread_pool/aio on 1.9.5+

Hi
Since 1.9.5,
*) Change: now the “output_buffers” directive uses two buffers by
default.

The two buffers do not work with thread_pool/aio, the connection is
closed at 32,768 bytes (size of one buffer)

These messages are shown in the error log:
[alert] 126931#126931: task #106 already active

  • Changing output_buffers back to 1 32k avoids the problem
  • aio=off avoids the problem

Many thanks
Richard

On Sunday 06 December 2015 01:28:15 Richard K. wrote:

Hi
Since 1.9.5,
*) Change: now the “output_buffers” directive uses two buffers by default.

The two buffers do not work with thread_pool/aio, the connection is
closed at 32,768 bytes (size of one buffer)

I’ve just tested and everything worked fine.
It seems there are other factors.

These messages are shown in the error log:
[alert] 126931#126931: task #106 already active

  • Changing output_buffers back to 1 32k avoids the problem
  • aio=off avoids the problem

Could you provide full configuration and a debug log?
http://nginx.org/en/docs/debugging_log.html

wbr, Valentin V. Bartenev

Hi Valentin
Thanks for looking,
I looked further and found that the cause is enabling (any)
“body_filter_by_lua_file” script from lua module while aio and multiple
output_buffers are set
I’ll send the report over to agentzh instead

Thanks
Richard