[Varnish] #1369: Spinning thread while esi+gzip fetch

Varnish varnish-bugs at varnish-cache.org
Mon Nov 4 11:31:20 CET 2013


#1369: Spinning thread while esi+gzip fetch
----------------------+-------------------
 Reporter:  lkarsten  |      Owner:
     Type:  defect    |     Status:  new
 Priority:  normal    |  Milestone:
Component:  varnishd  |    Version:  3.0.4
 Severity:  normal    |   Keywords:
----------------------+-------------------
 We've recently seen that a backend fetch for ESI enabled Gzip-ed content
 can get stuck and consume 100% CPU.
 Remaining threads are working fine, but this fetch never finishes.

 GDB backtrace of the spinning thread:

 {{{
 Thread 102 (Thread 0x7eff6149c700 (LWP 2664)):
 #0  inflate (strm=0x7effabb049f8, flush=0) at inflate.c:1233
         next = 0x7eff614813e8 "[ -- CUT -- ]"...
         put = 0x0
         have = 2199
         left = 32768
         hold = <value optimized out>
         bits = <value optimized out>
         in = 0
         out = 0
         copy = 28932
         from = 0x7eff614782b0 "[ -- CUT -- ]"...
         len = 0
         ret = 1
         hbuf = "ȺHa"
         order = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2,
 14, 1, 15}
 #1  0x0000000000424998 in VGZ_Gunzip (vg=0x7effabb049c0,
 pptr=0x7eff61488300, plen=0x7eff61488308) at cache_gzip.c:290
         i = <value optimized out>
         l = <value optimized out>
         before = 0x7eff614782b0 "[ -- CUT -- ]"...
         __func__ = "VGZ_Gunzip"
 #2  0x000000000041cb4e in vfp_esi_bytes_gg (sp=0x7eff20e02008,
 htc=0x7eff6149bc90, bytes=6591) at cache_esi_fetch.c:275
         w = 6591
         vef = 0x7eff210d7040
         dl = 0
         dp = 0x0
         i = <value optimized out>
         __func__ = "vfp_esi_bytes_gg"
 #3  0x000000000041d64e in vfp_esi_bytes (sp=0x7eff20e02008,
 htc=0x7eff6149bc90, bytes=6591) at cache_esi_fetch.c:348
         i = <value optimized out>
         i = <value optimized out>
         __func__ = "vfp_esi_bytes"
 #4  0x000000000042329e in fetch_chunked (sp=0x7eff20e02008) at
 cache_fetch.c:335
         __func__ = "fetch_chunked"
 #5  FetchBody (sp=0x7eff20e02008) at cache_fetch.c:570
         cls = 0
         st = <value optimized out>
         w = 0x7eff6149ba90
         mklen = <value optimized out>
         cl = <value optimized out>
         __func__ = "FetchBody"
 #6  0x00000000004166b8 in cnt_fetchbody (sp=0x7eff20e02008) at
 cache_center.c:868
         i = <value optimized out>
         hp = 0x7eff61489140
         hp2 = <value optimized out>
         b = 0x7eff61489bae "Thu, 31 Oct 2013 03:00:27 +0000"
         nhttp = 20
         l = <value optimized out>
         vary = 0x0
         varyl = 0
         pass = 1
         __func__ = "cnt_fetchbody"
 #7  0x0000000000418d50 in CNT_Session (sp=0x7eff20e02008) at steps.h:42
         done = 0
         __func__ = "CNT_Session"
 }}}

 Three backtraces are available. The second is similar with the thread at
 line 1232 in inflate.c, the third follows:

 {{{
 Thread 102 (Thread 0x7eff6149c700 (LWP 2664)):
 #0  vfp_esi_bytes_gg (sp=0x7eff20e02008, htc=0x7eff6149bc90, bytes=6591)
 at cache_esi_fetch.c:279
         w = 6591
         vef = 0x7eff210d7040
         dl = 0
         dp = 0x7eff614782b0
         i = 1
         __func__ = "vfp_esi_bytes_gg"
 #1  0x000000000041d64e in vfp_esi_bytes (sp=0x7eff20e02008,
 htc=0x7eff6149bc90, bytes=6591) at cache_esi_fetch.c:348
         i = <value optimized out>
         __func__ = "vfp_esi_bytes"
 #2  0x000000000042329e in fetch_chunked (sp=0x7eff20e02008) at
 cache_fetch.c:335
         __func__ = "fetch_chunked"
 #3  FetchBody (sp=0x7eff20e02008) at cache_fetch.c:570
         cls = 0
         st = <value optimized out>
         w = 0x7eff6149ba90
         mklen = <value optimized out>
         cl = <value optimized out>
         __func__ = "FetchBody"
 [..]
 }}}

 A PCAP of the bitstream is available on request.

-- 
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1369>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator




More information about the varnish-bugs mailing list