Mercurial > hg > nginx-quic
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 } |