You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Masa Sekimura (JIRA)" <ji...@apache.org> on 2016/11/08 19:01:01 UTC

[jira] [Created] (TS-5046) SEGV HttpSM::tunnel_handler_server(int event, HttpTunnelProducer *p)

Masa Sekimura created TS-5046:
---------------------------------

             Summary: SEGV HttpSM::tunnel_handler_server(int event, HttpTunnelProducer *p) 
                 Key: TS-5046
                 URL: https://issues.apache.org/jira/browse/TS-5046
             Project: Traffic Server
          Issue Type: Bug
            Reporter: Masa Sekimura


one of servers running 6.2.x (729c60b) got a SIGSEGV

{code}
(gdb) thread 42
[Switching to thread 42 (Thread 0x2aaab460d700 (LWP 4145))]
#0  0x00002aaaad6bd37d in __libc_waitpid (pid=<optimized out>, stat_loc=<optimized out>, options=<optimized out>) at ../sysdeps/unix/sysv/linux/waitpid.c:41
41	../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory.
(gdb) bt
#0  0x00002aaaad6bd37d in __libc_waitpid (pid=<optimized out>, stat_loc=<optimized out>, options=<optimized out>) at ../sysdeps/unix/sysv/linux/waitpid.c:41
#1  0x00002aaaaab81ec7 in crash_logger_invoke (signo=11, info=0x2aaab460bcf0, ctx=0x2aaab460bbc0) at Crash.cc:164
#2  <signal handler called>
#3  0x00002aaaaac83358 in HttpSM::tunnel_handler_server (this=0x2ab9b4efac00, event=<optimized out>, p=<optimized out>) at HttpSM.cc:3108
#4  0x00002aaaaace1d72 in HttpTunnel::producer_handler (this=this@entry=0x2ab9b4efbf28, event=102, event@entry=100, p=p@entry=0x2ab9b4efc128) at HttpTunnel.cc:1240
#5  0x00002aaaaace3343 in HttpTunnel::producer_run (this=this@entry=0x2ab9b4efbf28, p=p@entry=0x2ab9b4efc128) at HttpTunnel.cc:1020
#6  0x00002aaaaace3d71 in HttpTunnel::tunnel_run (this=0x2ab9b4efbf28, p_arg=0x2ab9b4efc128) at HttpTunnel.cc:787
#7  0x00002aaaaac96f8b in HttpSM::state_api_callout (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1534
#8  0x00002aaaaac9e0d3 in HttpSM::state_api_callback (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1331
#9  0x00002aaaaabad6ad in TSHttpTxnReenable (txnp=0x2ab9b4efac00, event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5652
#10 0x00002aaabe845c05 in XInjectResponseHeaders (event=<optimized out>, edata=0x2ab9b4efac00) at xdebug.cc:295
#11 0x00002aaaaab98c04 in INKContInternal::handle_event (this=0x2aaab6bf9dc0, event=60007, edata=0x2ab9b4efac00) at InkAPI.cc:1006
#12 0x00002aaaaac96d10 in HttpSM::state_api_callout (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1452
#13 0x00002aaaaac9e0d3 in HttpSM::state_api_callback (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1331
#14 0x00002aaaaabad6ad in TSHttpTxnReenable (txnp=0x2ab9b4efac00, event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5652
#15 0x00002aaabe01ea45 in cont_rewrite_headers (contp=0x2aaab6bf9ee0, event=<optimized out>, edata=0x2ab9b4efac00) at header_rewrite.cc:307
#16 0x00002aaaaab98c04 in INKContInternal::handle_event (this=0x2aaab6bf9ee0, event=60007, edata=0x2ab9b4efac00) at InkAPI.cc:1006
#17 0x00002aaaaac96d10 in HttpSM::state_api_callout (this=0x2ab9b4efac00, event=<optimized out>, data=<optimized out>) at HttpSM.cc:1452
#18 0x00002aaaaac9c910 in HttpSM::set_next_state (this=0x2ab9b4efac00) at HttpSM.cc:7296
#19 0x00002aaaaac96f8b in HttpSM::state_api_callout (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1534
#20 0x00002aaaaac9e0d3 in HttpSM::state_api_callback (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1331
#21 0x00002aaaaabad6ad in TSHttpTxnReenable (txnp=0x2ab9b4efac00, event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5652
#22 0x00002aaabf4038d5 in cont_handle_response (contp=<optimized out>, event=<optimized out>, edata=0x2ab9b4efac00) at background_fetch.cc:544
#23 0x00002aaaaab98c04 in INKContInternal::handle_event (this=0x2aaab6bf9d00, event=60006, edata=0x2ab9b4efac00) at InkAPI.cc:1006
#24 0x00002aaaaac96d10 in HttpSM::state_api_callout (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1452
#25 0x00002aaaaac9e0d3 in HttpSM::state_api_callback (this=this@entry=0x2ab9b4efac00, event=event@entry=60000, data=data@entry=0x0) at HttpSM.cc:1331
#26 0x00002aaaaabad6ad in TSHttpTxnReenable (txnp=0x2ab9b4efac00, event=TS_EVENT_HTTP_CONTINUE) at InkAPI.cc:5652
#27 0x00002aaabe01ea45 in cont_rewrite_headers (contp=0x2aaab6bf9ee0, event=<optimized out>, edata=0x2ab9b4efac00) at header_rewrite.cc:307
#28 0x00002aaaaab98c04 in INKContInternal::handle_event (this=0x2aaab6bf9ee0, event=60006, edata=0x2ab9b4efac00) at InkAPI.cc:1006
#29 0x00002aaaaac96d10 in HttpSM::state_api_callout (this=0x2ab9b4efac00, event=<optimized out>, data=<optimized out>) at HttpSM.cc:1452
#30 0x00002aaaaac97b6f in HttpSM::state_read_server_response_header (this=0x2ab9b4efac00, event=100, data=0x2aaaf59b3a98) at HttpSM.cc:1953
#31 0x00002aaaaac9e2bd in HttpSM::main_handler (this=0x2ab9b4efac00, event=100, data=0x2aaaf59b3a98) at HttpSM.cc:2658
#32 0x00002aaaaae6956b in Continuation::handleEvent (data=0x2aaaf59b3a98, event=100, this=<optimized out>) at ../../iocore/eventsystem/I_Continuation.h:153
#33 read_signal_and_update (vc=0x2aaaf59b3980, vc@entry=0x1, event=event@entry=100) at UnixNetVConnection.cc:148
#34 UnixNetVConnection::readSignalAndUpdate (this=this@entry=0x2aaaf59b3980, event=event@entry=100) at UnixNetVConnection.cc:1030
#35 0x00002aaaaae48cb3 in SSLNetVConnection::net_read_io (this=0x2aaaf59b3980, nh=0x2aaab3009cc0, lthread=0x2aaab3006000) at SSLNetVConnection.cc:598
#36 0x00002aaaaae56bec in NetHandler::mainNetEvent (this=0x2aaab3009cc0, event=<optimized out>, e=<optimized out>) at UnixNet.cc:513
#37 0x00002aaaaae8e956 in Continuation::handleEvent (data=0x2aaab0bf2040, event=5, this=<optimized out>) at I_Continuation.h:153
#38 EThread::process_event (calling_code=5, e=0x2aaab0bf2040, this=0x2aaab3006000) at UnixEThread.cc:148
#39 EThread::execute (this=0x2aaab3006000) at UnixEThread.cc:275
#40 0x00002aaaaae8d756 in spawn_thread_internal (a=0x2aaab0b211c0) at Thread.cc:86
#41 0x00002aaaad6b5aa1 in start_thread (arg=0x2aaab460d700) at pthread_create.c:301
#42 0x00002aaaae8be93d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
{code}

it's from HttpSMcc:3108

{code}
3081   if (close_connection) {
3082     p->vc->do_io_close();
3083     server_session = NULL; // Because p->vc == server_session
3084     p->read_vio    = NULL;
3085     /* TS-1424: if we're outbound transparent and using the client
3086        source port for the outbound connection we must effectively
3087        propagate server closes back to the client. Part of that is
3088        disabling KeepAlive if the server closes.
3089     */
3090     if (ua_session && ua_session->is_outbound_transparent() && t_state.http_config_param->use_client_source_port) {
3091       t_state.client_info.keep_alive = HTTP_NO_KEEPALIVE;
3092     }
3093   } else {
3094     server_session->attach_hostname(t_state.current.server->name);
3095     server_session->server_trans_stat--;
3096     HTTP_DECREMENT_DYN_STAT(http_current_server_transactions_stat);
3097
3098     // If the option to attach the server session to the client session is set
3099     // and if the client is still around and the client is keep-alive, attach the
3100     // server session to so the next ka request can use it.  Server sessions will
3101     // be placed into the shared pool if the next incoming request is for a different
3102     // origin server
3103     if (t_state.txn_conf->attach_server_session_to_client == 1 && ua_session && t_state.client_info.keep_alive == HTTP_KEEPALIVE) {
3104       Debug("http", "attaching server session to the client");
3105       ua_session->attach_server_session(server_session);
3106     } else {
3107       // Release the session back into the shared session pool
3108       server_session->get_netvc()->set_inactivity_timeout(HRTIME_SECONDS(t_state.txn_conf->keep_alive_no_activity_timeout_out));
3109       server_session->release();
3110     }
{code}

print vc_table result:

{code}
(gdb) p vc_table
$6 = {static vc_table_max_entries = 4, vc_table = {{vc = 0x2ae5aafe18a0, read_buffer = 0x0, write_buffer = 0x0,
      read_vio = 0x2ae5aafe1be0, write_vio = 0x0, vc_handler = (int (HttpSM::*)(HttpSM * const, int,
    void *)) 0x2aaaaac86640 <HttpSM::state_watch_for_client_abort(int, void*)>, vc_type = HTTP_UA_VC, eos = true, in_tunnel = true}, {
      vc = 0x2ae6503f7e80, read_buffer = 0x0, write_buffer = 0x0, read_vio = 0x2aaaf59b3a98, write_vio = 0x2aaaf59b3b00,
      vc_handler = (int (HttpSM::*)(HttpSM * const, int,
    void *)) 0x2aaaaac97750 <HttpSM::state_read_server_response_header(int, void*)>, vc_type = HTTP_SERVER_VC, eos = false,
      in_tunnel = true}, {vc = 0x0, read_buffer = 0x0, write_buffer = 0x0, read_vio = 0x0, write_vio = 0x0, vc_handler = NULL,
      vc_type = HTTP_UNKNOWN, eos = false, in_tunnel = false}, {vc = 0x0, read_buffer = 0x0, write_buffer = 0x0, read_vio = 0x0,
      write_vio = 0x0, vc_handler = NULL, vc_type = HTTP_UNKNOWN, eos = false, in_tunnel = false}}}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)