[
https://issues.apache.org/jira/browse/TS-4813?focusedWorklogId=29814&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29814
]
ASF GitHub Bot logged work on TS-4813:
--------------------------------------
Author: ASF GitHub Bot
Created on: 27/Sep/16 16:46
Start Date: 27/Sep/16 16:46
Worklog Time Spent: 10m
Work Description: GitHub user shinrich opened a pull request:
https://github.com/apache/trafficserver/pull/1052
TS-4813: Fix lingering stream.
I think the crash is being caused by a stream in state
HTTP2_STREAM_STATE_CLOSED not being cleaned up. The timeout triggers later and
takes a bad path through the HttpTunnel code.
The commit for TS-3535 (HTTP/2 priority support) adds a check at the
beginning of Http2ConnectionState::send_data_frames to return immediately if
_state is CLOSED or HALF_CLOSED local. I removed that check and the frequent
crashes stopped. I think by going through send_a_data_frame, this case will
return a HTTP2_SEND_A_DATA_FRAME_DONE return value which causes the
this->delete_stream() to be called which will clean up the closed Http2Stream
object.
I don't know the motivation for adding the earlier check. Perhaps we
should just call delete_stream in that case instead of returning immediately?
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/shinrich/trafficserver ts-4813
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/trafficserver/pull/1052.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1052
----
commit ae953db9c4e0f61d1a305465960457be32cde6a2
Author: Susan Hinrichs <[email protected]>
Date: 2016-09-27T16:24:11Z
TS-4813: Fix lingering stream.
----
Issue Time Tracking
-------------------
Worklog Id: (was: 29814)
Time Spent: 10m
Remaining Estimate: 0h
> HttpTunnel.cc:1215: failed assertion `p->alive == true || event ==
> HTTP_TUNNEL_EVENT_PRECOMPLETE ...
> ----------------------------------------------------------------------------------------------------
>
> Key: TS-4813
> URL: https://issues.apache.org/jira/browse/TS-4813
> Project: Traffic Server
> Issue Type: Bug
> Components: Network
> Reporter: Leif Hedstrom
> Priority: Blocker
> Labels: crash
> Fix For: 7.1.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Seeing this with current (as of right now) master, on docs.trafficserver:
> {code}
> FATAL: HttpTunnel.cc:1215: failed assertion `p->alive == true || event ==
> HTTP_TUNNEL_EVENT_PRECOMPLETE || event == VC_EVENT_EOS ||
> sm->enable_redirection || (p->self_consumer && p->self_consumer->alive ==
> true)`
> traffic_server: using root directory '/opt/ats'
> traffic_server: Aborted (Signal sent by tkill() 13188 99)
> traffic_server - STACK TRACE:
> /opt/ats/lib/libtsutil.so.7(signal_crash_handler(int, siginfo_t*,
> void*)+0x18)[0x2b6d1031729e]
> /opt/ats/bin/traffic_server(crash_logger_invoke(int, siginfo_t*,
> void*)+0x155)[0x534104]
> /lib64/libpthread.so.0(+0xf100)[0x2b6d1240f100]
> /lib64/libc.so.6(gsignal+0x37)[0x2b6d12d6e5f7]
> /lib64/libc.so.6(abort+0x148)[0x2b6d12d6fce8]
> /opt/ats/lib/libtsutil.so.7(ink_warning(char const*, ...)+0x0)[0x2b6d102f6f4d]
> /opt/ats/lib/libtsutil.so.7(+0x733a7)[0x2b6d102f13a7]
> /opt/ats/bin/traffic_server(HttpTunnel::producer_handler(int,
> HttpTunnelProducer*)+0xd14)[0x768a12]
> /opt/ats/bin/traffic_server(HttpTunnel::main_handler(int,
> void*)+0x13b)[0x76b6e1]
> /opt/ats/bin/traffic_server(Continuation::handleEvent(int,
> void*)+0x149)[0x53a621]
> /opt/ats/bin/traffic_server(HttpSM::state_watch_for_client_abort(int,
> void*)+0x9fe)[0x68c5e6]
> /opt/ats/bin/traffic_server(HttpSM::main_handler(int, void*)+0x58e)[0x69b7ec]
> /opt/ats/bin/traffic_server(Continuation::handleEvent(int,
> void*)+0x149)[0x53a621]
> /opt/ats/bin/traffic_server(Http2Stream::main_event_handler(int,
> void*)+0x59f)[0x79c1df]
> /opt/ats/bin/traffic_server(Continuation::handleEvent(int,
> void*)+0x149)[0x53a621]
> /opt/ats/bin/traffic_server(EThread::process_event(Event*,
> int)+0x2cf)[0xa809fb]
> /opt/ats/bin/traffic_server(EThread::execute()+0x671)[0xa8140f]
> /opt/ats/bin/traffic_server[0xa7f407]
> /lib64/libpthread.so.0(+0x7dc5)[0x2b6d12407dc5]
> /lib64/libc.so.6(clone+0x6d)[0x2b6d12e2fced]
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)