[ 
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)

Reply via email to