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

crash due to infinite loop

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.1.3
    • 3.3.0
    • Cache
    • None

    Description

      #10035 CacheVC::handleReadDone (this=0xd125690, event=<value optimized out>, e=<value optimized out>) at Cache.cc:1946
      #10036 0x000000000064106c in handleEvent (this=0xd125690, event=<value optimized out>, e=<value optimized out>)
      at ../../iocore/eventsystem/I_Continuation.h:146
      #10037 CacheVC::handleReadDone (this=0xd125690, event=<value optimized out>, e=<value optimized out>) at Cache.cc:1946
      #10038 0x000000000064106c in handleEvent (this=0xd125690, event=<value optimized out>, e=<value optimized out>)
      at ../../iocore/eventsystem/I_Continuation.h:146
      #10039 CacheVC::handleReadDone (this=0xd125690, event=<value optimized out>, e=<value optimized out>) at Cache.cc:1946
      #10040 0x000000000064106c in handleEvent (this=0xd125690, event=<value optimized out>, e=<value optimized out>)
      at ../../iocore/eventsystem/I_Continuation.h:146
      #10041 CacheVC::handleReadDone (this=0xd125690, event=<value optimized out>, e=<value optimized out>) at Cache.cc:1946
      #10042 0x000000000064106c in handleEvent (this=0xd125690, event=<value optimized out>, e=<value optimized out>)
      at ../../iocore/eventsystem/I_Continuation.h:146
      #10043 CacheVC::handleReadDone (this=0xd125690, event=<value optimized out>, e=<value optimized out>) at Cache.cc:1946
      #10044 0x000000000064106c in handleEvent (this=0xd125690, event=<value optimized out>, e=<value optimized out>)
      at ../../iocore/eventsystem/I_Continuation.h:146
      #10045 CacheVC::handleReadDone (this=0xd125690, event=<value optimized out>, e=<value optimized out>) at Cache.cc:1946
      #10046 0x0000000000648c46 in handleEvent (this=0x0, event=<value optimized out>, data=<value optimized out>)
      at ../../iocore/eventsystem/I_Continuation.h:146
      #10047 AIOCallbackInternal::io_complete (this=0x0, event=<value optimized out>, data=<value optimized out>) at ../../iocore/aio/P_AIO.h:80
      #10048 0x00000000006c503f in EThread::process_event (this=0x2aaaaf281010, e=0x2aaae409e5c0, calling_code=1) at I_Continuation.h:146
      #10049 0x00000000006c553a in EThread::execute (this=0x2aaaaf281010) at UnixEThread.cc:189
      #10050 0x00000000006c437e in spawn_thread_internal (a=0x90402b0) at Thread.cc:88
      #10051 0x00002ab0029b473d in start_thread () from /lib64/libpthread.so.0
      #10052 0x00002ab004b130cd in clone () from /lib64/libc.so.6

      possible reason:

      In case of collision CacheVC::removeEvent() called do_read_call(). Handler of cache vc was set to handleReadDone() by handleRead(). If handleRead() also returned EVENT_RETURN, CacheVC:removeEvent() jumped to label Lread. If collision was detected again, do_read_call() may be called once more. In this situation, handleReadDone was saved in save_handler. At the end of handleReadDone, POP_HANDLER finally led to infinite loop since save_handler pointed to handleReadDone.

      Attachments

        1. ts_1310_try1.diff
          0.4 kB
          Wei Jin

        Issue Links

          Activity

            People

              weijin Wei Jin
              franklinwolf Hua Cai
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: