comparison src/http/ngx_http_upstream.c @ 3940:22f3e9197096

revert r3935 and fix "stalled cache updating" alert by freeing cache at upstream finalize phase patch by Maxim Dounin
author Igor Sysoev <igor@sysoev.ru>
date Tue, 28 Jun 2011 13:26:08 +0000
parents b4b7bb829fe2
children f1f194ceab16
comparison
equal deleted inserted replaced
3939:3cbbe86a7a95 3940:22f3e9197096
2029 r->read_event_handler = ngx_http_request_empty_handler; 2029 r->read_event_handler = ngx_http_request_empty_handler;
2030 r->write_event_handler = ngx_http_request_empty_handler; 2030 r->write_event_handler = ngx_http_request_empty_handler;
2031 c->error = 1; 2031 c->error = 1;
2032 2032
2033 } else { 2033 } else {
2034
2035 #if (NGX_HTTP_CACHE)
2036
2037 if (r->cache) {
2038 ngx_http_file_cache_free(r->cache, u->pipe->temp_file);
2039 }
2040
2041 #endif
2042
2043 ngx_http_upstream_finalize_request(r, u, rc); 2034 ngx_http_upstream_finalize_request(r, u, rc);
2044 return; 2035 return;
2045 } 2036 }
2046 } 2037 }
2047 2038
2989 u->pipe->temp_file->file.fd); 2980 u->pipe->temp_file->file.fd);
2990 } 2981 }
2991 2982
2992 #if (NGX_HTTP_CACHE) 2983 #if (NGX_HTTP_CACHE)
2993 2984
2994 if (u->cacheable && r->cache) { 2985 if (r->cache) {
2995 time_t valid; 2986
2996 2987 if (u->cacheable) {
2997 if (rc == NGX_HTTP_BAD_GATEWAY || rc == NGX_HTTP_GATEWAY_TIME_OUT) { 2988
2998 2989 if (rc == NGX_HTTP_BAD_GATEWAY || rc == NGX_HTTP_GATEWAY_TIME_OUT) {
2999 valid = ngx_http_file_cache_valid(u->conf->cache_valid, rc); 2990 time_t valid;
3000 2991
3001 if (valid) { 2992 valid = ngx_http_file_cache_valid(u->conf->cache_valid, rc);
3002 r->cache->valid_sec = ngx_time() + valid; 2993
3003 r->cache->error = rc; 2994 if (valid) {
2995 r->cache->valid_sec = ngx_time() + valid;
2996 r->cache->error = rc;
2997 }
3004 } 2998 }
3005 } 2999 }
3006 3000
3007 ngx_http_file_cache_free(r->cache, u->pipe->temp_file); 3001 ngx_http_file_cache_free(r->cache, u->pipe->temp_file);
3008 } 3002 }