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

use_remap_processor crashes if share_server_sessions = 2

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.3.0
    • Fix Version/s: 8.0.0
    • Component/s: HTTP
    • Labels:

      Description

      easy to reproduce:

      CONFIG proxy.config.remap.use_remap_processor INT 1   (default is 0)
      CONFIG proxy.config.http.share_server_sessions INT 2  (0, 1 will be ok)
      
      Program received signal EXC_BAD_ACCESS, Could not access memory.
      Reason: KERN_INVALID_ADDRESS at address: 0x0000000000001210
      [Switching to process 8927 thread 0x1a03]
      0x00000001000ead15 in _acquire_session (bucket=0x11c0, ip=0x6713138, hostname_hash=@0xb06915d0, sm=0x6712aa0) at HttpSessionManager.cc:191
      (gdb) bt
      #0  0x00000001000ead15 in _acquire_session (bucket=0x11c0, ip=0x6713138, hostname_hash=@0xb06915d0, sm=0x6712aa0) at HttpSessionManager.cc:191
      #1  0x00000001000eb366 in HttpSessionManager::acquire_session (this=0x100445e60, cont=0x6712aa0, ip=0x6713138, hostname=0x4ebc19 "127.0.0.1", ua_session=0x2a88980, sm=0x6712aa0) at HttpSessionManager.cc:274
      #2  0x0000000100105c29 in HttpSM::do_http_server_open (this=0x6712aa0, raw=false) at HttpSM.cc:4384
      ......
      
      (gdb) p this_ethread()->l1_hash 
      $2 = (SessionBucket *) 0x0
      (gdb) p this_ethread()->event_types
      $3 = 2  (ET_REMAP)
      

      Using separate remap processor is a hidden option, and I enable it by accident.. (Does anyone use it in prod?)

      I noticed HttpSM::do_http_server_open is always executed by the remap processer ethread (because of action.continuation->handleEvent(EVENT_REMAP_COMPLETE, NULL), correct me if wrong). While the remap thread was not initialized as ET_NET and has no l1_hash, server session lookup in this ET_REMAP thread will crash.

      I didn't find a quick way to make HttpSM handling EVENT_REMAP_COMPLETE on ET_NET. So a fast workaround would be falling back to global server connection when use_remap_processor.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                amc Alan M. Carroll
                Reporter:
                conanmind Conan Wang
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated: