[
https://issues.apache.org/jira/browse/TS-4717?focusedWorklogId=26227&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-26227
]
ASF GitHub Bot logged work on TS-4717:
--------------------------------------
Author: ASF GitHub Bot
Created on: 08/Aug/16 13:17
Start Date: 08/Aug/16 13:17
Worklog Time Spent: 10m
Work Description: Github user shinrich commented on the issue:
https://github.com/apache/trafficserver/pull/842
Thanks @maskit. I fixed the sense of inside_frame. Had made a name change
and flipped the sense of the bool. Thought I had fixed up the patch, after
testing on my build, but missed it. Pushed a new commit with that fixed.
I've been running with only the ink_release asserts, so I didn't see the
!closed assert go off in UnixNetVConnection.cc. I've changed them to
ink_release_asserts and compiled with enable-debug, but I'm not able to get the
!closed asserts to trigger. Could you share the command you are using for your
testing?
Issue Time Tracking
-------------------
Worklog Id: (was: 26227)
Time Spent: 1h (was: 50m)
> Http2 stack explosion
> ---------------------
>
> Key: TS-4717
> URL: https://issues.apache.org/jira/browse/TS-4717
> Project: Traffic Server
> Issue Type: Bug
> Components: HTTP/2
> Reporter: Susan Hinrichs
> Assignee: Susan Hinrichs
> Time Spent: 1h
> Remaining Estimate: 0h
>
> We see this periodically with high traffic loads. ATS crashes with 7000+
> frames on the stack. The bulk of the frames are the following frame
> sequence.
> {code}
> #117 0x00000000005159c8 in Continuation::handleEvent (this=0x2b0bdd101b90,
> event=100, data=0x2b0bad0c7cf0)
> at ../iocore/eventsystem/I_Continuation.h:150
> #118 0x000000000064c05d in Http2ClientSession::state_start_frame_read
> (this=0x2b0bdd101b90, event=100, edata=0x2b0bad0c7cf0)
> at Http2ClientSession.cc:451
> #119 0x000000000064b0af in Http2ClientSession::main_event_handler
> (this=0x2b0bdd101b90, event=100, edata=0x2b0bad0c7cf0) at
> Http2ClientSession.cc:292
> #120 0x00000000005159c8 in Continuation::handleEvent (this=0x2b0bdd101b90,
> event=100, data=0x2b0bad0c7cf0)
> at ../iocore/eventsystem/I_Continuation.h:150
> #121 0x000000000064c386 in Http2ClientSession::state_complete_frame_read
> (this=0x2b0bdd101b90, event=100, edata=0x2b0bad0c7cf0)
> at Http2ClientSession.cc:483
> #122 0x000000000064b0af in Http2ClientSession::main_event_handler
> (this=0x2b0bdd101b90, event=100, edata=0x2b0bad0c7cf0) at
> Http2ClientSession.cc:292
> #123 0x00000000005159c8 in Continuation::handleEvent (this=0x2b0bdd101b90,
> event=100, data=0x2b0bad0c7cf0)
> at ../iocore/eventsystem/I_Continuation.h:150
> #124 0x000000000064c05d in Http2ClientSession::state_start_frame_read
> (this=0x2b0bdd101b90, event=100, edata=0x2b0bad0c7cf0)
> at Http2ClientSession.cc:451
> {code}
> We had cherry picked in the fix for TS-4209 to correctly enforce the
> concurrent stream limit. But in the latest crash of this type, it looks like
> we are pulling small items from cache, so the stream lives and dies on the
> stack. The concurrent active connection count never reaches the limit.
> I am going to try to change the
> state_state_start_frame_read/state_complete_frame_read logic from recursing
> handlers to a loop.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)