Skip to content

Crash in Http1ClientSession::free (triggered via authproxy plugin) #6527

@zwoop

Description

@zwoop

Getting this crash using latest v9.0.x:

#0  0x00007f3c2ba2a199 in waitpid () from /lib64/libpthread.so.0
#1  0x000055e59c34c254 in crash_logger_invoke (signo=11, info=0x7f3c2270acb0, ctx=0x7f3c2270ab80) at traffic_server/Crash.cc:168
#2  <signal handler called>
#3  0x0000000000000000 in ?? ()
#4  0x000055e59c39af72 in Http1ClientSession::free (this=0x7f3aeb6cd820) at Http1ClientSession.cc:115
#5  0x000055e59c5480f4 in handle_api_return (event=60000, this=<optimized out>) at ProxySession.cc:168
#6  ProxySession::do_api_callout (this=0x7f3aeb6cd820, id=<optimized out>) at ProxySession.cc:145
#7  0x000055e59c39ae99 in Http1ClientSession::destroy (this=0x7f3aeb6cd820) at Http1ClientSession.cc:79
#8  0x000055e59c3b254f in HttpSM::kill_this (this=0x7f3b10435800) at HttpSM.cc:6946
#9  0x000055e59c3b8c52 in HttpSM::state_api_callback (this=0x7f3b10435800, event=60000, data=0x0) at HttpSM.cc:1351
#10 0x000055e59c365f64 in TSHttpTxnReenable (txnp=0x7f3b10435800, event=TS_EVENT_HTTP_CONTINUE) at traffic_server/InkAPI.cc:6090
#11 0x00007f3bfeb66878 in StateAuthorized (auth=0x7f3c21f20060) at authproxy/authproxy.cc:615
#12 0x00007f3bfeb65d05 in AuthRequestContext::dispatch (cont=<optimized out>, event=TS_EVENT_IMMEDIATE, edata=0x7f004e161f10) at authproxy/authproxy.cc:218
#13 0x000055e59c35810e in INKContInternal::handle_event (this=0x7f3c0cfdd3a0, event=100, edata=0x7f004e161f10) at traffic_server/InkAPI.cc:1095
#14 0x000055e59c5433f0 in handleEvent (event=100, this=<optimized out>, data=<optimized out>)
    at /usr/src/debug/bazinga-trafficserver-9.0.0/iocore/eventsystem/I_Continuation.h:190
#15 PluginVC::process_read_side (this=0x7f004e161d40, other_side_call=true) at PluginVC.cc:659
#16 0x000055e59c543d7e in PluginVC::process_write_side (this=0x7f004e162008, other_side_call=<optimized out>) at PluginVC.cc:569
#17 0x000055e59c5424b4 in PluginVC::main_handler (this=0x7f004e162008, event=<optimized out>, data=<optimized out>) at PluginVC.cc:225
#18 0x000055e59c5af325 in handleEvent (this=<optimized out>, event=<optimized out>, data=<optimized out>) at ./I_Continuation.h:190
#19 EThread::process_event (this=0x7f3c2660d000, e=0x7f3ba24d8e20, calling_code=1) at UnixEThread.cc:137
#20 0x000055e59c5af5db in EThread::process_queue (this=0x7f3c2660d000, NegativeQueue=0x7f3c2270bde0, ev_count=0x7f3c2270be14, nq_count=0x7f3c2270bdfc)
    at UnixEThread.cc:176
#21 0x000055e59c5afa7b in EThread::execute_regular (this=0x7f3c2660d000) at UnixEThread.cc:236
#22 0x000055e59c5aff64 in EThread::execute (this=0x7f3c2660d000) at UnixEThread.cc:345
#23 0x000055e59c5ae97b in spawn_thread_internal (a=0x7f3c2a0bd230) at Thread.cc:92
#24 0x00007f3c2ba22e65 in start_thread () from /lib64/libpthread.so.0
#25 0x00007f3c2ae4088d in clone () from /lib64/libc.so.6

Full bt:

(gdb) bt full
#0  0x00007f3c2ba2a199 in waitpid () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x000055e59c34c254 in crash_logger_invoke (signo=11, info=0x7f3c2270acb0, ctx=0x7f3c2270ab80) at traffic_server/Crash.cc:168
        status = 0
#2  <signal handler called>
No symbol table info available.
#3  0x0000000000000000 in ?? ()
No symbol table info available.
#4  0x000055e59c39af72 in Http1ClientSession::free (this=0x7f3aeb6cd820) at Http1ClientSession.cc:115
No locals.
#5  0x000055e59c5480f4 in handle_api_return (event=60000, this=<optimized out>) at ProxySession.cc:168
        hookid = TS_HTTP_SSN_CLOSE_HOOK
#6  ProxySession::do_api_callout (this=0x7f3aeb6cd820, id=<optimized out>) at ProxySession.cc:145
No locals.
#7  0x000055e59c39ae99 in Http1ClientSession::destroy (this=0x7f3aeb6cd820) at Http1ClientSession.cc:79
No locals.
#8  0x000055e59c3b254f in HttpSM::kill_this (this=0x7f3b10435800) at HttpSM.cc:6946
No locals.
#9  0x000055e59c3b8c52 in HttpSM::state_api_callback (this=0x7f3b10435800, event=60000, data=0x0) at HttpSM.cc:1351
No locals.
#10 0x000055e59c365f64 in TSHttpTxnReenable (txnp=0x7f3b10435800, event=TS_EVENT_HTTP_CONTINUE) at traffic_server/InkAPI.cc:6090
        trylock = {
          m = {
            m_ptr = 0x7f3b4c1bd210
          },
          lock_acquired = true
        }
        sm = 0x7f3b10435800
        eth = 0x7f3c2660d000
        cb = <optimized out>
#11 0x00007f3bfeb66878 in StateAuthorized (auth=0x7f3c21f20060) at authproxy/authproxy.cc:615
        options = 0x7f3ba4a373e0
#12 0x00007f3bfeb65d05 in AuthRequestContext::dispatch (cont=<optimized out>, event=TS_EVENT_IMMEDIATE, edata=0x7f004e161f10) at authproxy/authproxy.cc:218
        auth = 0x7f3c21f20060
        s = <optimized out>
#13 0x000055e59c35810e in INKContInternal::handle_event (this=0x7f3c0cfdd3a0, event=100, edata=0x7f004e161f10) at traffic_server/InkAPI.cc:1095
        retval = <optimized out>
#14 0x000055e59c5433f0 in handleEvent (event=100, this=<optimized out>, data=<optimized out>) at /usr/src/debug/bazinga-trafficserver-9.0.0/iocore/eventsystem/I_Continuation.h:190
No locals.
#15 PluginVC::process_read_side (this=0x7f004e161d40, other_side_call=true) at PluginVC.cc:659
        core_reader = <optimized out>
        ntodo = <optimized out>
        bytes_avail = <optimized out>
        act_on = 1247
        output_buffer = <optimized out>
        water_mark = <optimized out>
        buf_space = <optimized out>
        added = <optimized out>
#16 0x000055e59c543d7e in PluginVC::process_write_side (this=0x7f004e162008, other_side_call=<optimized out>) at PluginVC.cc:569
        my_ethread = <optimized out>
        lock = <optimized out>
        core_buffer = <optimized out>
        ntodo = <optimized out>
        reader = <optimized out>
        bytes_avail = <optimized out>
        act_on = <optimized out>
        buf_space = <optimized out>
        added = <optimized out>
#17 0x000055e59c5424b4 in PluginVC::main_handler (this=0x7f004e162008, event=<optimized out>, data=<optimized out>) at PluginVC.cc:225
        call_event = <optimized out>
        my_ethread = 0x7f3c2660d000
        read_mutex_held = true
        write_mutex_held = <optimized out>
#18 0x000055e59c5af325 in handleEvent (this=<optimized out>, event=<optimized out>, data=<optimized out>) at ./I_Continuation.h:190
No locals.
#19 EThread::process_event (this=0x7f3c2660d000, e=0x7f3ba24d8e20, calling_code=1) at UnixEThread.cc:137
        c_temp = <optimized out>
        lock = {
          m = {
            m_ptr = 0x7f3b8cb2d9e0
          },
          lock_acquired = true
        }
#20 0x000055e59c5af5db in EThread::process_queue (this=0x7f3c2660d000, NegativeQueue=0x7f3c2270bde0, ev_count=0x7f3c2270be14, nq_count=0x7f3c2270bdfc) at UnixEThread.cc:176
No locals.
#21 0x000055e59c5afa7b in EThread::execute_regular (this=0x7f3c2660d000) at UnixEThread.cc:236
        sleep_time = <optimized out>
        done_one = <optimized out>
        METRIC_INIT = {
          _loop_time = {
            _start = 0,
            _min = 9223372036854775807,
            _max = 0
          },
          _events = {
            _min = 2147483647,
            _max = 0,
            _total = 0
          },
          _count = 0,
          _wait = 0
        }
        prev_metric = 0x7f3c26717f90
        ev_count = 1
        nq_count = 0
        loop_start_time = <optimized out>
        next_time = <optimized out>
        loop_finish_time = <optimized out>
        delta = <optimized out>
#22 0x000055e59c5aff64 in EThread::execute (this=0x7f3c2660d000) at UnixEThread.cc:345
No locals.
#23 0x000055e59c5ae97b in spawn_thread_internal (a=0x7f3c2a0bd230) at Thread.cc:92
        p = 0x7f3c2a0bd230
#24 0x00007f3c2ba22e65 in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#25 0x00007f3c2ae4088d in clone () from /lib64/libc.so.6
No symbol table info available.

HttpSM History (frame 8):

(gdb) p history
$2 = {
  history = {{
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5c9efd "state_read_client_request_header",
        line = 613
      },
      event = 100,
      reentrancy = 2
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 3
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 3
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 4
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 4
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 5
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 5
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 6
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 6
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca169 "state_watch_for_client_abort",
        line = 880
      },
      event = 105,
      reentrancy = 1
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 1
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 1
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 2
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 2
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 3
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 3
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca39a "state_api_callback",
        line = 1337
      },
      event = 60000,
      reentrancy = 4
    }, {
      location = {
        file = 0x55e59c5c9e88 "HttpSM.cc",
        func = 0x55e59c5ca3b6 "state_api_callout",
        line = 1377
      },
      event = 60000,
      reentrancy = 4
    }, {
      location = {
        file = 0x0,
        func = 0x0,
        line = 0
      },
      event = 0,
      reentrancy = 0
    } <repeats 47 times>},
  history_pos = 18
}

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions