<br><br><div class="gmail_quote">On Wed, Oct 12, 2011 at 5:20 AM, Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hello!<br>
<div class="im"><br>
On Tue, Oct 11, 2011 at 07:53:36PM -0700, Matthieu Tourne wrote:<br>
<br>
> Hi all,<br>
><br>
> After turning on keepalives, we've been seeing one crash pretty<br>
> consistently.<br>
> We're running nginx 1.1.5 and here is the backtrace :<br>
><br>
> (gdb) bt<br>
> #0  ngx_write_chain_to_file (file=0x173dbd0, cl=0x0, offset=26779,<br>
> pool=0x162b850) at src/os/unix/ngx_files.c:162<br>
> #1  0x000000000040ea3e in ngx_write_chain_to_temp_file (tf=0x173dbd0,<br>
> chain=0x0) at src/core/ngx_file.c:35<br>
> #2  0x000000000041c534 in ngx_event_pipe_write_chain_to_temp_file<br>
> (p=0x173d048) at src/event/ngx_event_pipe.c:771<br>
<br>
</div>Do you have any local patches here or it's just some debug logging<br>
added?<br></blockquote><div><br></div><div>There is one patch isn't in this code path and shouldn't have any effect here.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">


<br>
$ grep -n ngx_write_chain_to_temp_file src/event/ngx_event_pipe.c<br>
521:                if (ngx_write_chain_to_temp_file(p->temp_file, &file)<br>
765:    if (ngx_write_chain_to_temp_file(p->temp_file, out) == NGX_ERROR) {<br>
<div><div></div><div class="h5"><br>
> #3  0x000000000041cd3d in ngx_event_pipe_read_upstream (p=0x173d048,<br>
> do_write=0) at src/event/ngx_event_pipe.c:234<br>
> #4  ngx_event_pipe (p=0x173d048, do_write=0) at<br>
> src/event/ngx_event_pipe.c:50<br>
> #5  0x000000000043e1b6 in ngx_http_upstream_process_upstream (r=0x1ae4bb0,<br>
> u=0x1afb4f8) at src/http/ngx_http_upstream.c:2704<br>
> #6  0x000000000043e612 in ngx_http_upstream_handler (ev=0x689b) at<br>
> src/http/ngx_http_upstream.c:936<br>
> #7  0x000000000041b1f6 in ngx_event_process_posted (cycle=<value optimized<br>
> out>, posted=0x0) at src/event/ngx_event_posted.c:39<br>
> #8  0x000000000041b0c6 in ngx_process_events_and_timers (cycle=0x151bbf0) at<br>
> src/event/ngx_event.c:272<br>
> #9  0x0000000000420bc3 in ngx_worker_process_cycle (cycle=0x151bbf0,<br>
> data=<value optimized out>) at src/os/unix/ngx_process_cycle.c:801<br>
> #10 0x000000000041f4cc in ngx_spawn_process (cycle=0x151bbf0, proc=0x420aeb<br>
> <ngx_worker_process_cycle>, data=<value optimized out>, name=0x470dc9<br>
> "worker process", respawn=5) at src/os/unix/ngx_process.c:196<br>
> #11 0x0000000000421359 in ngx_reap_children (cycle=0x151bbf0) at<br>
> src/os/unix/ngx_process_cycle.c:617<br>
> #12 ngx_master_process_cycle (cycle=0x151bbf0) at<br>
> src/os/unix/ngx_process_cycle.c:180<br>
> #13 0x000000000040700a in main (argc=<value optimized out>, argv=<value<br>
> optimized out>) at src/core/nginx.c:405<br>
><br>
> It seems that p->in is NULL in ngx_event_pipe_write_chain_to_temp_file() but<br>
> I can't figure out why.<br>
> It's using the proxy module as an upstream.<br>
><br>
> Let me know I could provide more info to help!<br>
<br>
</div></div>Could you please show:<br>
<br>
fr 2<br>
p *p<br>
p p->bufs<br>
p *p->temp_file<br>
<br>
fr 5<br>
p *r<br>
p *u<br>
p u->headers_in<br></blockquote><div><br></div><div><div>(gdb) fr 2</div><div>#2  0x000000000041c534 in ngx_event_pipe_write_chain_to_temp_file (p=0x173d048) at src/event/ngx_event_pipe.c:771</div><div>771<span class="Apple-tab-span" style="white-space:pre">       </span>src/event/ngx_event_pipe.c: No such file or directory.</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span>in src/event/ngx_event_pipe.c</div><div>(gdb) p *p</div><div>$1 = {upstream = 0x7f3e2cbe1010, downstream = 0x7f3e2cbdd950, free_raw_bufs = 0x0, in = 0x0, last_in = 0x173d060, out = 0x0, last_out = 0x17b9bf8, free = 0x17b9b30, </div>

<div>  busy = 0x17b9ec0, input_filter = 0x45c873 <ngx_http_proxy_chunked_filter>, input_ctx = 0x1ae4bb0, output_filter = 0x42897f <ngx_http_output_filter>, output_ctx = 0x1ae4bb0, </div><div>  read = 0, cacheable = 1, single_buf = 0, free_bufs = 1, upstream_done = 0, upstream_error = 0, upstream_eof = 0, upstream_blocked = 0, downstream_done = 0, </div>

<div>  downstream_error = 0, cyclic_temp_file = 0, cache_file_maxed = 0, allocated = 9, bufs = {num = 9, size = 8192}, tag = 0x693400, busy_size = 8192, read_length = 27269, </div><div>  length = 168, max_temp_file_size = 1048576, max_cache_file_size = 0, temp_file_write_size = 16384, read_timeout = 120000, send_timeout = 60000, send_lowat = 0, </div>

<div>  pool = 0x162b850, log = 0x16530b0, preread_bufs = 0x0, preread_size = 12, buf_to_file = 0x0, temp_file = 0x173dbd0, num = 61}</div><div>(gdb) p p->bufs</div><div>$2 = {num = 9, size = 8192}</div><div>(gdb) p *p->temp_file</div>

<div>$3 = {file = {fd = 308, name = {len = 46, data = 0x173dd88 "/usr/local/nginx-cache/storage/temp/0009520674"}, info = {st_dev = 0, st_ino = 0, st_nlink = 0, st_mode = 0, </div><div>      st_uid = 0, st_gid = 0, __pad0 = 0, st_rdev = 0, st_size = 0, st_blksize = 0, st_blocks = 0, st_atim = {tv_sec = 0, tv_nsec = 0}, st_mtim = {tv_sec = 0, tv_nsec = 0}, </div>

<div>      st_ctim = {tv_sec = 0, tv_nsec = 0}, __unused = {0, 0, 0}}, offset = 26779, sys_offset = 26779, log = 0x16530b0, valid_info = 0, directio = 0}, offset = 26779, </div><div>  path = 0x152efa0, pool = 0x162b850, warn = 0x0, access = 0, log_level = 0, persistent = 1, clean = 0}</div>

<div><br></div><div><br></div><div>(gdb) fr 5</div><div>#5  0x000000000043e1b6 in ngx_http_upstream_process_upstream (r=0x1ae4bb0, u=0x1afb4f8) at src/http/ngx_http_upstream.c:2704</div><div>2704<span class="Apple-tab-span" style="white-space:pre">    </span>src/http/ngx_http_upstream.c: No such file or directory.</div>

<div><span class="Apple-tab-span" style="white-space:pre">      </span>in src/http/ngx_http_upstream.c</div><div>(gdb) p *r</div><div>$4 = {signature = 1347703880, connection = 0x7f3e2cbdd950, ctx = 0x162bc60, main_conf = 0x151c9e0, srv_conf = 0x1537c68, loc_conf = 0x157d2c0, </div>

<div>  read_event_handler = 0x43e840 <ngx_http_upstream_rd_check_broken_connection>, write_event_handler = 0x43edf5 <ngx_http_upstream_process_downstream>, cache = 0x173d188, </div><div>  upstream = 0x1afb4f8, upstream_states = 0x173d658, pool = 0x162b850, header_in = 0x15bff00, headers_in = {headers = {last = 0x162c668, part = {elts = 0x1afa9b0, nelts = 20, </div>

<div>        next = 0x162c668}, size = 48, nalloc = 20, pool = 0x162b850}, host = 0x1afaa10, connection = 0x0, if_modified_since = 0x1afae30, if_unmodified_since = 0x0, </div><div>    user_agent = 0x1afae00, referer = 0x0, content_length = 0x0, content_type = 0x0, range = 0x0, if_range = 0x0, transfer_encoding = 0x0, expect = 0x0, </div>

<div>    accept_encoding = 0x0, via = 0x0, authorization = 0x0, keep_alive = 0x0, x_forwarded_for = 0x0, x_real_ip = 0x1afaa40, user = {len = 0, data = 0x0}, passwd = {len = 0, </div><div>      data = 0x0}, cookies = {elts = 0x162c558, nelts = 0, size = 8, nalloc = 2, pool = 0x162b850}, server = {len = 13, </div>

<div>      data = 0x162c57d "sir-emeth.comx-real-ipconnect-via-httpscf-host-origin-ipcf-ipcountrycf-iptypecf-use-byccf-use-obcf-pref-obcf-pref-geoloccf-identify-botcf-cache-levelcf-force-miss-tscf-minify-modehost-spoofset-expires"...}, content_length_n = -1, keep_alive_n = -1, connection_type = 0, msie = 0, msie6 = 0, opera = 0, gecko = 0, chrome = 0, </div>

<div>    safari = 0, konqueror = 0}, headers_out = {headers = {last = 0x1ae4d58, part = {elts = 0x162b8a0, nelts = 2, next = 0x0}, size = 48, nalloc = 20, pool = 0x162b850}, </div><div>    status = 200, status_line = {len = 6, data = 0x1afb981 "200 OK0 \321s\001"}, server = 0x0, date = 0x0, content_length = 0x0, content_encoding = 0x0, location = 0x0, </div>

<div>    refresh = 0x0, last_modified = 0x0, content_range = 0x0, accept_ranges = 0x0, www_authenticate = 0x0, expires = 0x0, etag = 0x0, override_charset = 0x0, </div><div>    content_type_len = 9, content_type = {len = 9, data = 0x173d9a8 "text/html"}, charset = {len = 0, data = 0x0}, content_type_lowcase = 0x0, content_type_hash = 0, </div>

<div>    cache_control = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, content_length_n = -1, date_time = 0, last_modified_time = -1}, request_body = 0x173d158, </div><div>  lingering_time = 0, start_sec = 1318377836, start_msec = 445, method = 2, http_version = 1001, request_line = {len = 116, </div>

<div>    data = 0x1822f70 "GET /bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag"}, uri = {len = 12, </div><div>    data = 0x1afb392 "/@@se/bible/"}, args = {len = 95, </div>

<div>    data = 0x1822f7c "bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag"}, exten = {len = 0, data = 0x0}, </div><div>  unparsed_uri = {len = 103, data = 0x1822f74 "/bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag"}, </div>

<div>  method_name = {len = 3, </div><div>    data = 0x1822f70 "GET /bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag"}, http_protocol = {</div>

<div>    len = 8, data = 0x1822fdc "HTTP/1.1\r\nCF-IDTag"}, out = 0x17ba158, main = 0x1ae4bb0, parent = 0x0, postponed = 0x0, post_subrequest = 0x0, posted_requests = 0x0, </div><div>  virtual_names = 0x0, phase_handler = 11, content_handler = 0x45960e <ngx_http_proxy_handler>, access_code = 0, variables = 0x162bdd8, ncaptures = 0, captures = 0x1afb130, </div>

<div>  captures_data = 0x1822f74 "/bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag", limit_rate = 0, </div><div>  header_size = 271, request_length = 736, err_status = 0, http_connection = 0x1653108, log_handler = 0x42f4b2 <ngx_http_log_error_handler>, cleanup = 0x173d6b8, </div>

<div>  subrequests = 51, count = 1, blocked = 0, aio = 0, http_state = 2, complex_uri = 0, quoted_uri = 0, plus_in_uri = 0, space_in_uri = 0, invalid_header = 0, </div><div>  add_uri_to_alias = 0, valid_location = 1, valid_unparsed_uri = 0, uri_changed = 0, uri_changes = 10, request_body_in_single_buf = 0, request_body_in_file_only = 0, </div>

<div>  request_body_in_persistent_file = 0, request_body_in_clean_file = 0, request_body_file_group_access = 0, request_body_file_log_level = 5, subrequest_in_memory = 0, </div><div>  waited = 0, cached = 0, gzip_tested = 0, gzip_ok = 0, gzip_vary = 0, gzip_force = 0, proxy = 0, bypass_cache = 0, no_cache = 0, limit_zone_set = 0, limit_req_set = 0, </div>

<div>  pipeline = 0, plain_http = 0, chunked = 1, header_only = 0, keepalive = 1, lingering_close = 0, discard_body = 0, internal = 1, error_page = 0, ignore_content_encoding = 0, </div><div>  filter_finalize = 0, post_action = 0, request_complete = 0, request_output = 1, header_sent = 1, expect_tested = 0, root_tested = 0, done = 0, logged = 0, buffered = 0, </div>

<div>  main_filter_need_in_memory = 0, filter_need_in_memory = 0, filter_need_temporary = 0, allow_ranges = 0, stat_reading = 0, stat_writing = 1, state = 0, header_hash = 116750, </div><div>  lowcase_index = 3, lowcase_header = "viansfer-encoding", '\000' <repeats 14 times>, </div>

<div>  header_name_start = 0x1ae749c "33'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "\r\n1a\r\n<td bgcolor='#336633'>\n   \r\n6\r\n      \r\n9\r\n   </td>\n\r\n"..., </div>

<div>  header_name_end = 0x1ae745c "'20' width='5'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n       "..., </div>

<div>  header_start = 0x1ae745e "0' width='5'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n         "..., </div>

<div>  header_end = 0x1ae749c "33'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 time---Type <return> to continue, or q <return> to quit---</div>

<div>s>, "<td bgcolor='#336633'>\n", ' ' <repeats 12 times>, "</td>\n", ' ' <repeats 12 times>, "\r\n1a\r\n<td bgcolor='#336633'>\n   \r\n6\r\n      \r\n9\r\n   </td>\n\r\n"..., </div>

<div>  uri_start = 0x1822f74 "/bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag", </div><div>  uri_end = 0x1822fdb " HTTP/1.1\r\nCF-IDTag", uri_ext = 0x0, </div>

<div>  args_start = 0x1822f7c "bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag", </div><div>  request_start = 0x1822f70 "GET /bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag", </div>

<div>  request_end = 0x1822fe4 "\r\nCF-IDTag", </div><div>  method_end = 0x1822f72 "T /bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nCF-IDTag", schema_start = 0x0, </div>

<div>  schema_end = 0x0, host_start = 0x0, host_end = 0x0, port_start = 0x0, port_end = 0x0, http_minor = 1, http_major = 1}</div><div>(gdb) p *u</div><div>$5 = {read_event_handler = 0x43e15b <ngx_http_upstream_process_upstream>, write_event_handler = 0x43b866 <ngx_http_upstream_dummy_handler>, peer = {</div>

<div>    connection = 0x7f3e2cbe1010, sockaddr = 0x1afb970, socklen = 16, name = 0x173d730, tries = 1, get = 0x465c0a <ngx_http_upstream_get_keepalive_peer>, </div><div>    free = 0x465954 <ngx_http_upstream_free_keepalive_peer>, data = 0x173d780, set_session = 0x465262 <ngx_http_upstream_keepalive_set_session>, </div>

<div>    save_session = 0x465275 <ngx_http_upstream_keepalive_save_session>, local = 0x157cf00, rcvbuf = 0, log = 0x16530b0, cached = 0, log_error = 1}, pipe = 0x173d048, </div><div>  request_bufs = 0x173d648, output = {buf = 0x0, in = 0x0, free = 0x0, busy = 0x0, sendfile = 1, directio = 0, unaligned = 0, need_in_memory = 0, need_in_temp = 0, </div>

<div>    alignment = 512, pool = 0x162b850, allocated = 0, bufs = {num = 1, size = 131072}, tag = 0x693400, output_filter = 0x4096f0 <ngx_chain_writer>, filter_ctx = 0x1afb5f0}, </div><div>  writer = {out = 0x0, last = 0x1afb5f0, connection = 0x7f3e2cbe1010, pool = 0x162b850, limit = 0}, conf = 0x157d858, headers_in = {headers = {last = 0x1afb628, part = {</div>

<div>        elts = 0x173d7e0, nelts = 5, next = 0x0}, size = 48, nalloc = 8, pool = 0x162b850}, status_n = 200, status_line = {len = 6, data = 0x1afb981 "200 OK0 \321s\001"}, </div><div>    status = 0x0, date = 0x173d7e0, server = 0x173d810, connection = 0x0, expires = 0x0, etag = 0x0, x_accel_expires = 0x0, x_accel_redirect = 0x0, x_accel_limit_rate = 0x0, </div>

<div>    content_type = 0x173d840, content_length = 0x0, last_modified = 0x0, location = 0x0, accept_ranges = 0x0, www_authenticate = 0x0, transfer_encoding = 0x173d870, </div><div>    content_encoding = 0x0, content_length_n = -1, cache_control = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, pool = 0x0}, connection_close = 0, chunked = 1}, </div>

<div>  resolved = 0x173d000, buffer = {</div><div>    pos = 0x1ae7330 "...", last = 0x1ae7330 "...", </div><div>    file_pos = 0, file_last = 0, </div><div>    start = 0x1ae7330 "...", end = 0x1ae9330 "", tag = 0x693400, file = 0x0, shadow = 0x0, temporary = 1, </div>

<div>    memory = 0, mmap = 0, recycled = 1, in_file = 0, flush = 0, sync = 0, last_buf = 0, last_in_chain = 0, last_shadow = 0, temp_file = 0, num = 9}, length = -1, </div><div>  out_bufs = 0x0, busy_bufs = 0x0, free_bufs = 0x0, input_filter_init = 0x4584f1 <ngx_http_proxy_input_filter_init>, </div>

<div>  input_filter = 0x459db3 <ngx_http_proxy_non_buffered_chunked_filter>, input_filter_ctx = 0x1ae4bb0, create_key = 0x45b21c <ngx_http_proxy_create_key>, </div><div>  max_cache_file_size = 0, create_request = 0x45a9bf <ngx_http_proxy_create_request>, reinit_request = 0x458470 <ngx_http_proxy_reinit_request>, </div>

<div>  process_header = 0x45a572 <ngx_http_proxy_process_header>, abort_request = 0x45861a <ngx_http_proxy_abort_request>, </div><div>  finalize_request = 0x45861c <ngx_http_proxy_finalize_request>, rewrite_redirect = 0, timeout = 0, state = 0x173d680, method = {len = 0, data = 0x0}, schema = {len = 7, </div>

<div>    data = 0x1afb8f0 "http://<IP>/bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly"}, uri = {len = 103, </div><div>    data = 0x173d4b4 "/bible/?bookSelect=2+Chronicles&chapterSelect=13&verseSelect=7&addedRadio=Brackets&vsRefRadio=VerseOnly HTTP/1.1\r\nHost: <a href="http://sir-emeth.com">sir-emeth.com</a>\r\nConnection: Keep-Alive\r\nAccept-Encoding: gzip\r\nCF-Connecting-IP: "...}, cleanup = 0x173d6b8, bind_hash = 3776832724, store = 0, cacheable = 1, no_cache = 0, accel = 1, ssl = 0, </div>

<div>  cache_status = 1, buffering = 1, keepalive = 0, keepalive_status = 0, request_sent = 1, header_sent = 1}</div><div>(gdb) p u->headers_in </div><div>$6 = {headers = {last = 0x1afb628, part = {elts = 0x173d7e0, nelts = 5, next = 0x0}, size = 48, nalloc = 8, pool = 0x162b850}, status_n = 200, status_line = {len = 6, </div>

<div>    data = 0x1afb981 "200 OK0 \321s\001"}, status = 0x0, date = 0x173d7e0, server = 0x173d810, connection = 0x0, expires = 0x0, etag = 0x0, x_accel_expires = 0x0, </div><div>  x_accel_redirect = 0x0, x_accel_limit_rate = 0x0, content_type = 0x173d840, content_length = 0x0, last_modified = 0x0, location = 0x0, accept_ranges = 0x0, </div>

<div>  www_authenticate = 0x0, transfer_encoding = 0x173d870, content_encoding = 0x0, content_length_n = -1, cache_control = {elts = 0x0, nelts = 0, size = 0, nalloc = 0, </div><div>    pool = 0x0}, connection_close = 0, chunked = 1}</div>

</div><div><br></div><div>Hope that this helps!</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I think I see what's going on here, just to confirm.  The<br>
underlying issue seems to be one identified in commit message<br>
here:<br>
<br>
<a href="http://trac.nginx.org/nginx/changeset/4136/nginx" target="_blank">http://trac.nginx.org/nginx/changeset/4136/nginx</a><br>
<br>
(all available buffers in the p->out chain)<br>
<br>
Setting proxy_busy_buffers to something lower compared to<br>
proxy_buffers may help as a workaround.<br></blockquote><div><br></div><div>We'll try that and see if that has a positive effect, thank you.</div><div>Also, would having u->buffering == 0 (proxy_buffering off) help in this scenario ?</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Maxim Dounin<br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div><br>