On Nov 2, 2011, at 5:44 AM, Rüdiger Plüm wrote: > > > Am 01.11.2011 21:23, schrieb Jim Jagielski: >> In mod_proxy_http we have: >> >> /* Prefetch MAX_MEM_SPOOL bytes >> * >> * This helps us avoid any election of C-L v.s. T-E >> * request bodies, since we are willing to keep in >> * memory this much data, in any case. This gives >> * us an instant C-L election if the body is of some >> * reasonable size. >> */ >> temp_brigade = apr_brigade_create(p, bucket_alloc); >> do { >> status = ap_get_brigade(r->input_filters, temp_brigade, >> AP_MODE_READBYTES, APR_BLOCK_READ, >> MAX_MEM_SPOOL - bytes_read); >> if (status != APR_SUCCESS) { >> ap_log_error(APLOG_MARK, APLOG_ERR, status, r->server, >> "proxy: prefetch request body failed to %pI (%s)" >> " from %s (%s)", >> p_conn->addr, p_conn->hostname ? p_conn->hostname: >> "", >> c->remote_ip, c->remote_host ? c->remote_host: ""); >> return HTTP_BAD_REQUEST; >> } >> >> apr_brigade_length(temp_brigade, 1,&bytes); >> bytes_read += bytes; >> >> However, I see times when status could be APR_EAGAIN. IMO, it doesn't >> make sense to error out here in that case. Right? > > Why should it be EAGAIN with a blocking read? >
Or a Timeout... With Fed14, I'm seeing occasional 'Resource temporarily unavailable' errors, which I think we should be able to handle.