You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Masakazu Kitajo (JIRA)" <ji...@apache.org> on 2016/04/17 11:45:25 UTC

[jira] [Commented] (TS-4355) Assert in HttpTunnel fails when access with HTTP/2

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

Masakazu Kitajo commented on TS-4355:
-------------------------------------

The assertion in HttpTunnel.cc
{code}
    if ((c = get_consumer((VIO *)data)) != 0) {
      ink_assert(c->write_vio == (VIO *)data);
{code}

TS-3612 changes the behavior of {{HttpTunnel::get_consumer(VIO *vio)}}. So assertion fails if the latter condition, {{consumers\[i\].vc == vio->vc_server}}, is true.

{code}
 inline HttpTunnelConsumer *
 HttpTunnel::get_consumer(VIO *vio)
 {
-  for (int i = 0; i < MAX_CONSUMERS; i++) {
-    if (consumers[i].write_vio == vio) {
-      return consumers + i;
+  if (vio) {
+    for (int i = 0; i < MAX_CONSUMERS; i++) {
+      if (consumers[i].write_vio == vio || consumers[i].vc == vio->vc_server) {
+        return consumers + i;
+      }
     }
   }
   return NULL;
{code}

I'm unsure about this, but it works if I remove the assert.

> Assert in HttpTunnel fails when access with HTTP/2
> --------------------------------------------------
>
>                 Key: TS-4355
>                 URL: https://issues.apache.org/jira/browse/TS-4355
>             Project: Traffic Server
>          Issue Type: Bug
>          Components: HTTP/2
>            Reporter: Masakazu Kitajo
>             Fix For: 6.2.0
>
>
> {noformat}
> FATAL: HttpTunnel.cc:1573: failed assert `c->write_vio == (VIO *)data`
> traffic_server: using root directory '/opt/trafficserver'
> traffic_server: Aborted (Signal sent by tkill() 27626 99)traffic_server - STACK TRACE:
> /opt/trafficserver/bin/traffic_server(_Z19crash_logger_invokeiP7siginfoPv+0xc3)[0x50522d]
> /lib64/libc.so.6(+0x326a0)[0x2b53bd9416a0]
> /lib64/libc.so.6(gsignal+0x35)[0x2b53bd941625]
> /lib64/libc.so.6(abort+0x175)[0x2b53bd942e05]
> /opt/trafficserver/lib/libtsutil.so.6(_Z12ink_fatal_vaPKcP13__va_list_tag+0x0)[0x2b53bb5d28d1]
> /opt/trafficserver/lib/libtsutil.so.6(_Z9ink_fatalPKcz+0x0)[0x2b53bb5d2988]
> /opt/trafficserver/lib/libtsutil.so.6(_Z10ink_pfatalPKcz+0x0)[0x2b53bb5d2a4d]
> /opt/trafficserver/lib/libtsutil.so.6(+0x3674e)[0x2b53bb5d074e]
> /opt/trafficserver/bin/traffic_server(_ZN10HttpTunnel12main_handlerEiPv+0xfe)[0x64b0b2]
> /opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50826e]
> /opt/trafficserver/bin/traffic_server(_ZN11Http2Stream16initiating_closeEv+0x271)[0x6608ed]
> /opt/trafficserver/bin/traffic_server(_ZN20Http2ConnectionState13delete_streamEP11Http2Stream+0x36)[0x65c7c6]
> /opt/trafficserver/bin/traffic_server(_ZN20Http2ConnectionState15send_data_frameEP11Http2Stream+0x791)[0x65d065]
> /opt/trafficserver/bin/traffic_server(_ZN11Http2Stream20update_write_requestEP14IOBufferReaderlb+0x4d3)[0x66164d]
> /opt/trafficserver/bin/traffic_server(_ZN11Http2Stream11do_io_writeEP12ContinuationlP14IOBufferReaderb+0x106)[0x660370]
> /opt/trafficserver/bin/traffic_server(_ZN10HttpTunnel12producer_runEP18HttpTunnelProducer+0x6bf)[0x64929d]
> /opt/trafficserver/bin/traffic_server(_ZN10HttpTunnel10tunnel_runEP18HttpTunnelProducer+0x9b)[0x648ae7]
> /opt/trafficserver/bin/traffic_server(_ZN6HttpSM17handle_api_returnEv+0x26e)[0x5f3f90]
> /opt/trafficserver/bin/traffic_server(_ZN6HttpSM14set_next_stateEv+0x1069)[0x60a119]
> /opt/trafficserver/bin/traffic_server(_ZN6HttpSM32call_transact_and_set_next_stateEPFvPN12HttpTransact5StateEE+0x1ae)[0x6090a8]
> /opt/trafficserver/bin/traffic_server(_ZN6HttpSM17handle_api_returnEv+0xfa)[0x5f3e1c]
> /opt/trafficserver/bin/traffic_server(_ZN6HttpSM14do_api_calloutEv+0x40)[0x610386]
> /opt/trafficserver/bin/traffic_server(_ZN6HttpSM33state_read_server_response_headerEiPv+0x759)[0x5f4fa9]
> /opt/trafficserver/bin/traffic_server(_ZN6HttpSM12main_handlerEiPv+0x270)[0x5f7ca8]
> /opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50826e]
> /opt/trafficserver/bin/traffic_server[0x79f87d]
> /opt/trafficserver/bin/traffic_server[0x7a05d6]
> /opt/trafficserver/bin/traffic_server(_ZN18UnixNetVConnection11net_read_ioEP10NetHandlerP7EThread+0x2b)[0x7a2731]
> /opt/trafficserver/bin/traffic_server(_ZN10NetHandler12mainNetEventEiP5Event+0x6f0)[0x797884]
> /opt/trafficserver/bin/traffic_server(_ZN12Continuation11handleEventEiPv+0x6c)[0x50826e]
> /opt/trafficserver/bin/traffic_server(_ZN7EThread13process_eventEP5Eventi+0x136)[0x7c2314]
> /opt/trafficserver/bin/traffic_server(_ZN7EThread7executeEv+0x4ae)[0x7c2940]
> /opt/trafficserver/bin/traffic_server[0x7c18ac]
> /lib64/libpthread.so.0(+0x7aa1)[0x2b53bdcaaaa1]
> /lib64/libc.so.6(clone+0x6d)[0x2b53bd9f793d]
> {noformat}



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