You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Luca Bruno (JIRA)" <ji...@apache.org> on 2016/01/12 15:09:39 UTC

[jira] [Commented] (TS-4126) Crash with high concurrency and low max_connections_active_in

    [ https://issues.apache.org/jira/browse/TS-4126?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15093922#comment-15093922 ] 

Luca Bruno commented on TS-4126:
--------------------------------

Seems like the keep_alive_queue is empty, yet keep_alive_queue.head is accessed unconditionally. The debug says this right before crashing:

{noformat}
[Jan 12 15:06:01.082] Server {0x7ffff0d5f700} DEBUG: <UnixNet.cc:669 (_close_vc)> (net_queue) closing connection NetVC=0x7fff30016df0 idle: 0 now: 1452607561 at: 0 in: 30 diff: 1452607591
{noformat}

As you can see, idle: 0, which is keep_alive_queue_size. In fact the crash path is at keep_alive_queue.head->handleEvent(EVENT_IMMEDIATE, &event); .


> Crash with high concurrency and low max_connections_active_in
> -------------------------------------------------------------
>
>                 Key: TS-4126
>                 URL: https://issues.apache.org/jira/browse/TS-4126
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: HTTP
>            Reporter: Luca Bruno
>
> ATS 6.0.0 reproducible crash with high concurrency (thousands of connections) and low proxy.config.net.max_connections_active_in.
> {noformat}
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7ffff1062700 (LWP 51041)]
> NetHandler::_close_vc (this=0x7ffff2076b90, vc=0x7fff40053c20, now=1452601469419678969, handle_event=@0x7ffff105da3c: 0, closed=@0x7ffff105da38: 0, total_idle_time=<optimized out>, 
>     total_idle_count=@0x7ffff105da44: 1) at UnixNet.cc:678
> 678	UnixNet.cc: No such file or directory.
> (gdb) bt
> #0  NetHandler::_close_vc (this=0x7ffff2076b90, vc=0x7fff40053c20, now=1452601469419678969, handle_event=@0x7ffff105da3c: 0, closed=@0x7ffff105da38: 0, total_idle_time=<optimized out>, 
>     total_idle_count=@0x7ffff105da44: 1) at UnixNet.cc:678
> #1  0x0000555555891383 in NetHandler::manage_active_queue (this=0x7ffff2076b90) at UnixNet.cc:590
> #2  0x000055555589143a in NetHandler::add_to_active_queue (this=0x7ffff2076b90, vc=0x7fffe4048f40) at UnixNet.cc:720
> #3  0x00005555556dd82d in HttpClientSession::new_transaction (this=0x7fffcc0ac1d0) at HttpClientSession.cc:124
> #4  0x0000555555666d67 in ProxyClientSession::state_api_callout (this=0x7fffcc0ac1d0, event=<optimized out>) at ProxyClientSession.cc:123
> #5  0x00005555556de75b in HttpClientSession::new_connection (this=0x7fffcc0ac1d0, new_vc=<optimized out>, iobuf=<optimized out>, reader=<optimized out>, backdoor=<optimized out>)
>     at HttpClientSession.cc:220
> #6  0x00005555556d860d in HttpSessionAccept::accept (this=<optimized out>, netvc=0x7fffe4048f40, iobuf=<optimized out>, reader=0x7fffa4021a68) at HttpSessionAccept.cc:74
> #7  0x00005555556668ab in ProtocolProbeTrampoline::ioCompletionEvent (this=0x7fffb002d8d0, event=1, edata=0x7ffff1062a30) at ProtocolProbeSessionAccept.cc:123
> #8  0x000055555589bf19 in handleEvent (data=0x7fffe4049060, event=<optimized out>, this=<optimized out>) at ../../iocore/eventsystem/I_Continuation.h:146
> #9  read_signal_and_update (event=<optimized out>, vc=0x7fffe4048f40) at UnixNetVConnection.cc:145
> #10 0x00005555558a080c in read_from_net (nh=0x7ffff2076b90, vc=0x7fffe4048f40, thread=0x7ffff2073010) at UnixNetVConnection.cc:377
> #11 0x000055555588f33a in NetHandler::mainNetEvent (this=0x7ffff2076b90, event=1, e=0x7ffff1062a30) at UnixNet.cc:516
> #12 0x00005555558c352b in handleEvent (data=0x5555562b5820, event=5, this=0x7ffff2076b90) at I_Continuation.h:146
> #13 EThread::process_event (this=this@entry=0x7ffff2073010, e=0x5555562b5820, calling_code=calling_code@entry=5) at UnixEThread.cc:128
> #14 0x00005555558c4e26 in EThread::execute (this=0x7ffff2073010) at UnixEThread.cc:252
> #15 0x00005555558c2eae in spawn_thread_internal (a=0x55555620cf90) at Thread.cc:86
> #16 0x00007ffff60510a4 in start_thread (arg=0x7ffff1062700) at pthread_create.c:309
> #17 0x00007ffff4ff904d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
> {noformat}
> To reproduce:
> 1. Set proxy.config.net.max_connections_active_in to 100
> 2. ab -c 20000 -n 100000 http://sameurlhere



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