From 861e75dc208d8568dca6025af54b5b24c17d873f Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Fri, 18 Mar 2016 14:27:30 +0300 Subject: [PATCH] Cache: report error if slab allocator fails during cache loading. --- src/http/ngx_http_cache.h | 2 ++ src/http/ngx_http_file_cache.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/http/ngx_http_cache.h b/src/http/ngx_http_cache.h index d36fa779c..e93278d47 100644 --- a/src/http/ngx_http_cache.h +++ b/src/http/ngx_http_cache.h @@ -153,6 +153,8 @@ struct ngx_http_file_cache_s { time_t inactive; + time_t fail_time; + ngx_uint_t files; ngx_uint_t loader_files; ngx_msec_t last; diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c index 37c475409..c8b19e1cc 100644 --- a/src/http/ngx_http_file_cache.c +++ b/src/http/ngx_http_file_cache.c @@ -2094,6 +2094,12 @@ ngx_http_file_cache_add(ngx_http_file_cache_t *cache, ngx_http_cache_t *c) fcn = ngx_slab_calloc_locked(cache->shpool, sizeof(ngx_http_file_cache_node_t)); if (fcn == NULL) { + if (cache->fail_time != ngx_time()) { + cache->fail_time = ngx_time(); + ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, + "could not allocate node%s", cache->shpool->log_ctx); + } + ngx_shmtx_unlock(&cache->shpool->mutex); return NGX_ERROR; }