error status codes could be cached for next request only,
the bug has been introduced in r3712
diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c
index 94ddbf6..c9ecded 100644
--- a/src/http/ngx_http_file_cache.c
+++ b/src/http/ngx_http_file_cache.c
@@ -927,10 +927,13 @@
}
if (c->error) {
- fcn->valid_sec = c->valid_sec;
- fcn->valid_msec = c->valid_msec;
fcn->error = c->error;
+ if (c->valid_sec) {
+ fcn->valid_sec = c->valid_sec;
+ fcn->valid_msec = c->valid_msec;
+ }
+
} else if (!fcn->exists && fcn->count == 0 && c->min_uses == 1) {
ngx_queue_remove(&fcn->queue);
ngx_rbtree_delete(&cache->sh->rbtree, &fcn->node);