upgrade to 1-9.15 caused block requests

Ortal nginx-forum at forum.nginx.org
Wed Nov 21 18:47:40 UTC 2018


Hi, 
I am developing my own nginx module, I am getting a post requests, parse the
data and send 204.
I worked with nginx version release-1.9.15, and I am trying to upgrade to
version release-1.15.5.
After the upgrade post requests with payload larger then 1M are getting
blocked. 
>From the nginx log:
2018/11/21 20:03:10 [debug] 13470#0: *2 http reading blocked

I attached to the process and this is the request 
Expect: 100-continue
Content-Type: multipart/form-data; boundary=", '-' <repeats 20 times>

=================
(gdb) p *c->buffer    
$95 = {pos = 0xd00cf0 "PUT /1/file.txt HTTP/1.1\r\nHost:
127.0.0.1:8081\r\nUser-Agent: curl/7.47.0\r\nAccept: */*\r\nContent-Length:
4\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\ntxt1", last =
0xd00d90 "",
  file_pos = 0, file_last = 0, start = 0xd00cf0 "PUT /1/file.txt
HTTP/1.1\r\nHost: 127.0.0.1:8081\r\nUser-Agent: curl/7.47.0\r\nAccept:
*/*\r\nContent-Length: 4\r\nContent-Type:
application/x-www-form-urlencoded\r\n\r\ntxt1",
  end = 0xd010f0 "\020\004", tag = 0x0, file = 0x0, shadow = 0x0, temporary
= 1, memory = 0, mmap = 0, recycled = 0, in_file = 0, flush = 0, sync = 0,
last_buf = 0, last_in_chain = 0, last_shadow = 0, temp_file = 0, num = 0}
=================



When the request get to ngx_http_read_client_request_body it send the
ngx_http_test_expect
 send HTTP/1.1 100 Continue response, but the request has no data on the
buffer

on ngx_http_create_request

=================
(gdb) p *r->header_in
$58 = {
  pos = 0xf3f1d0 "PUT /1/file_2G.txt HTTP/1.1\r\nHost:
127.0.0.1:8081\r\nUser-Agent: curl/7.47.0\r\nAccept: */*\r\nContent-Length:
1048804\r\nExpect: 100-continue\r\nContent-Type: multipart/form-data;
boundary=", '-' <repeats 20 tim
es>..., last = 0xf3f2b0 "", file_pos = 0, file_last = 0,
  start = 0xf3f1d0 "PUT /1/file_2G.txt HTTP/1.1\r\nHost:
127.0.0.1:8081\r\nUser-Agent: curl/7.47.0\r\nAccept: */*\r\nContent-Length:
1048804\r\nExpect: 100-continue\r\nContent-Type: multipart/form-data;
boundary=", '-' <repeats 20 t
imes>..., end = 0xf3f5d0 "", tag = 0x0, file = 0x0, shadow = 0x0, temporary
= 1, memory = 0, mmap = 0, recycled = 0, in_file = 0, flush = 0, sync = 0,
last_buf = 0, last_in_chain = 0, last_shadow = 0, temp_file = 0, num = 0}
=================

on ngx_http_read_client_request_body:

=================
$59 = {pos = 0xf3f2b0 "", last = 0xf3f2b0 "", file_pos = 0, file_last = 0,
start = 0xf3f1d0 "PUT /1", end = 0xf3f5d0 "", tag = 0x0, file = 0x0, shadow
= 0x0, temporary = 1, memory = 0, mmap = 0, recycled = 0, in_file = 0, 
  flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0,
temp_file = 0, num = 0}
=================

The request are blocked without a response. 

I did not changed nothing on my code, I tried to return to the old nginx
version (1-9.15) and it worked, I an using a basic curl command.
I could not found any related information on the topic, is anyone familiar
with this problem?

Nginx conf:

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,282068,282068#msg-282068



More information about the nginx mailing list