Bug report: missing SCARCE string innginx-1.1.15/src/http/ngx_http_file_cache.c [patch]

Maxim Dounin mdounin at mdounin.ru
Fri Feb 17 11:23:10 UTC 2012


Hello!

On Fri, Feb 17, 2012 at 12:43:39PM +0400, Max wrote:

> 
> 16 февраля 2012, 14:08 от Maxim Dounin <mdounin at mdounin.ru>:
> > On Thu, Feb 16, 2012 at 01:08:58PM +0400, Max wrote:
> > > the value of the NGX_HTTP_CACHE_SCARCE cache status is defined in
> > > nginx-1.1.15/src/http/ngx_http_cache.h, but unlike the other cache
> > > status strings, it's missing from
> > nginx-1.1.15/src/http/ngx_http_file_cache.c. 
> > > 
> > > The function ngx_http_upstream_cache_status() in
> > > nginx-1.1.15/src/http/ngx_http_upstream.c references the status
> > > strings directly as ngx_http_cache_status[n].len, so with the
> > > SCARCE cache status string missing, this is a segmentation violation
> > > waiting to happen.
> > > 
> > > Here's the patch to fix the problem:
> > > 
> > > <patch>
> > > --- src/http/ngx_http_file_cache.c.orig  2012-02-16 00:18:21.000000000 -0800
> > > +++ src/http/ngx_http_file_cache.c       2012-02-16 00:25:00.000000000 -0800
> > > @@ -53,7 +53,8 @@
> > >      ngx_string("EXPIRED"),
> > >      ngx_string("STALE"),
> > >      ngx_string("UPDATING"),
> > > -    ngx_string("HIT")
> > > +    ngx_string("HIT"),
> > > +    ngx_string("SCARCE")
> > >  };
> > > ---</patch>
> > 
> > The NGX_HTTP_CACHE_SCARCE value can't appear in u->cache_status, 
> > and hence there is no real problem.  It's a special value used by 
> > cache to inform upstream that there is no cached response (i.e. 
> > MISS cache status) and cacheing should be enabled due to min_uses 
> > preventing it.
> 
> You mean DISABLED due to file cache node exists being 0 or min_uses
> being set too high?

Yep, s/should/should not/.

Maxim Dounin



More information about the nginx mailing list