Uploaded image for project: 'Traffic Server'
  1. Traffic Server
  2. TS-4009

stale_while_revalidate crash



    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 6.0.0
    • Fix Version/s: 6.1.0
    • Component/s: Plugins
    • Labels:


      Since 6.0 stale_while_revalidate-plugin crashes after serving a stale document while trying to get the new one. Can reproduce this issue with 6.0.x and master branch using the provided testserver. 5.3.x works fine. Doesn't look like that issue is up to some changes in the plugin-code so i guess it's an issue in the core code.

      #0 0x00002b75ae4625d7 in raise () from /lib64/libc.so.6
      #1 0x00002b75ae463cc8 in abort () from /lib64/libc.so.6
      #2 0x00002b75abdfd29d in ink_die_die_die () at ink_error.cc:43
      #3 0x00002b75abdfd356 in ink_fatal_va (fmt=0x2b75abe0e088 "%s:%d: failed assert `%s`", ap=0x2b75c0804a48) at ink_error.cc:65
      #4 0x00002b75abdfd3f5 in ink_fatal (message_format=0x2b75abe0e088 "%s:%d: failed assert `%s`") at ink_error.cc:73
      #5 0x00002b75abdfb016 in _ink_assert (expression=0x7b6e00 "((INKContInternal *)contp)->mutex", file=0x7b5dc5 "InkAPI.cc", line=6302) at ink_assert.cc:37
      #6 0x000000000051a5e2 in _TSReleaseAssert (text=0x7b6e00 "((INKContInternal *)contp)->mutex", file=0x7b5dc5 "InkAPI.cc", line=6302) at InkAPI.cc:407
      #7 0x0000000000528563 in TSVConnRead (connp=0x2b75d0000928, contp=0x28e6d60, bufp=0x2b75b801d5b0, nbytes=9223372036854775807) at InkAPI.cc:6302
      #8 0x00002b75b65d1795 in fetch_resource (cont=0x28e6dd0, event=TS_EVENT_IMMEDIATE, edata=0x2825ba0) at stale_while_revalidate.c:449
      #9 0x000000000051b4a7 in INKContInternal::handle_event (this=0x28e6dd0, event=1, edata=0x2825ba0) at InkAPI.cc:1005
      #10 0x0000000000506e34 in Continuation::handleEvent (this=0x28e6dd0, event=1, data=0x2825ba0) at ../iocore/eventsystem/I_Continuation.h:146
      #11 0x00000000007ac72e in EThread::process_event (this=0x2b75c0503010, e=0x2825ba0, calling_code=1) at UnixEThread.cc:128
      #12 0x00000000007ac990 in EThread::execute (this=0x2b75c0503010) at UnixEThread.cc:179
      #13 0x00000000007abc91 in spawn_thread_internal (a=0x2a7d460) at Thread.cc:86
      #14 0x00002b75ad48cdf5 in start_thread () from /lib64/libpthread.so.0
      #15 0x00002b75ae5231ad in clone () from /lib64/libc.so.6

      EDIT: I guess i just found it. I don't know why but NULL seems to be a problem right here

      "consume_cont = TSContCreate(consume_resource, NULL);" in fetch_resource

      In case i create a new TSMutex and pass it to this call it seems to work. Trying to make a patch for that now.

      I guess it is broken due to these changes:




            • Assignee:
              zwoop Leif Hedstrom
              hoody christoph
            • Votes:
              0 Vote for this issue
              9 Start watching this issue


              • Created: