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.

Reply via email to