One ngx_slice_module bug when use nginx as a reverse proxy server
|Reported by:||Owned by:|
|uname -a:||Linux 2.6.32-642.13.1.el6.x86_64|
- Nginx -1.10.2
- Uname -Linux 2.6.32-642.13.1.el6.x86_64
We use nginx as a reverse proxy server , and enable ngx_http_slice_module.
We have a problem:
When the client receives the first slice body, nginx no longer sends the second slice body, and the connection ( for client) is hanging .
Then we debug the problem, we found that before the second slice body sent to client , the connection’s(for client) write’s status as following:
ready is 1 , delayed is 1
After upstream_module use ngx_event_pipe_read_upstream function to read some body response from upstream, then the buffer is full, but due to the write’s delayed status, the response cannot be sent to the client. Because there is no event to call write_event_handler to reset delayed status and timedout status. The upstream_module step in error cycle.
We suspect that this problem is due to execute the wrong timer event handler.