Welcome! Log In Create A New Profile

Advanced

upgrade to 1-9.15 caused block requests

November 21, 2018 01:47PM
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:
Subject Author Posted

upgrade to 1-9.15 caused block requests

Ortal November 21, 2018 01:47PM

Re: upgrade to 1-9.15 caused block requests

Maxim Dounin November 21, 2018 02:28PM

Re: upgrade to 1-9.15 caused block requests

Ortal November 22, 2018 07:15AM

Re: upgrade to 1-9.15 caused block requests

Maxim Dounin November 22, 2018 08:40AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 104
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready