[Varnish] #1150: Fast expiry_sleep causing panics

Varnish varnish-bugs at varnish-cache.org
Mon Jun 18 12:14:41 CEST 2012


#1150: Fast expiry_sleep causing panics
--------------------------------+-------------------------------------------
 Reporter:  jjordan             |        Type:  defect  
   Status:  new                 |    Priority:  normal  
Milestone:                      |   Component:  varnishd
  Version:  3.0.2               |    Severity:  critical
 Keywords:  expiry_sleep panic  |  
--------------------------------+-------------------------------------------
Description changed by kristian:

Old description:

> We were having an issue with SMA.Transient.g_alloc growing unbounded
> because we were getting stuff into it faster then the expiry thread could
> remove it.
> We turned down the expiry_sleep.  With expiry_sleep at 0.02 it keeps up
> with the Transient expiring such that it doesn't grow unbounded, but
> every couple minutes after the Transient store is empty we get the
> following panic:
>
> varnish> panic.show
> 200
> Last panic at: Sun, 03 Jun 2012 08:43:09 GMT
> Assert error in oc_getobj(), cache.h line 452:
>  Condition((oc->flags & (1<<1)) == 0) not true.
> thread = (cache-timeout)
> ident = Linux,2.6.18-308.4.1.el5,x86_64,-smalloc,-smalloc,-hcritbit,epoll
> Backtrace:
>  0x42c7a6: /usr/sbin/varnishd [0x42c7a6]
>  0x420a35: /usr/sbin/varnishd [0x420a35]
>  0x42ebac: /usr/sbin/varnishd [0x42ebac]
>  0x3a9de0677d: /lib64/libpthread.so.0 [0x3a9de0677d]
>  0x3a9cad325d: /lib64/libc.so.6(clone+0x6d) [0x3a9cad325d]
>

>
> varnish> param.show expiry_sleep
> 200
> expiry_sleep               0.020000 [seconds]
>                           Default is 1
>                           How long the expiry thread sleeps when there is
>                           nothing for it to do.
>
> varnish>
>
> If I set expiry_sleep any higher, it doesn't keep up and Transient store
> acts basically as a slow memory leak.
>
> We are running 3.0.2 on Centos 5.8, Kernel 2.6.18-308.4.1.el5, SMP x86_64
> GNU/Linux

New description:

 We were having an issue with SMA.Transient.g_alloc growing unbounded
 because we were getting stuff into it faster then the expiry thread could
 remove it.
 We turned down the expiry_sleep.  With expiry_sleep at 0.02 it keeps up
 with the Transient expiring such that it doesn't grow unbounded, but every
 couple minutes after the Transient store is empty we get the following
 panic:

 {{{
 varnish> panic.show
 200
 Last panic at: Sun, 03 Jun 2012 08:43:09 GMT
 Assert error in oc_getobj(), cache.h line 452:
  Condition((oc->flags & (1<<1)) == 0) not true.
 thread = (cache-timeout)
 ident = Linux,2.6.18-308.4.1.el5,x86_64,-smalloc,-smalloc,-hcritbit,epoll
 Backtrace:
  0x42c7a6: /usr/sbin/varnishd [0x42c7a6]
  0x420a35: /usr/sbin/varnishd [0x420a35]
  0x42ebac: /usr/sbin/varnishd [0x42ebac]
  0x3a9de0677d: /lib64/libpthread.so.0 [0x3a9de0677d]
  0x3a9cad325d: /lib64/libc.so.6(clone+0x6d) [0x3a9cad325d]



 varnish> param.show expiry_sleep
 200
 expiry_sleep               0.020000 [seconds]
                           Default is 1
                           How long the expiry thread sleeps when there is
                           nothing for it to do.

 varnish>
 }}}
 If I set expiry_sleep any higher, it doesn't keep up and Transient store
 acts basically as a slow memory leak.

 We are running 3.0.2 on Centos 5.8, Kernel 2.6.18-308.4.1.el5, SMP x86_64
 GNU/Linux

--

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1150#comment:1>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator




More information about the varnish-bugs mailing list