You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by GitBox <gi...@apache.org> on 2020/05/18 19:11:33 UTC

[GitHub] [trafficserver] zwoop opened a new issue #6799: HttpTunnel / H2 assertion on Docs (9.0.x)

zwoop opened a new issue #6799:
URL: https://github.com/apache/trafficserver/issues/6799


   Got this assertion on current (05/18/2020) 9.0.x builds:
   
   ```
   Fatal: HttpSM.cc:955: failed assertion `t_state.hdr_info.client_request.m_100_continue_required`
   
   6    0x00002b34a5bfd805 _ink_assert + 0x37
   7    0x000000000079b4b2 HttpSM::state_watch_for_client_abort(int, void*) + 0xff6
   8    0x00000000007ae4ad HttpSM::main_handler(int, void*) + 0x615
   9    0x000000000065b3c4 Continuation::handleEvent(int, void*) + 0x19e
   10   0x00000000009ac6e9 Http2Stream::signal_write_event(int) + 0x2e1
   11   0x00000000009a6117 Http2Stream::main_event_handler(int, void*) + 0x9e1
   12   0x000000000065b3c4 Continuation::handleEvent(int, void*) + 0x19e
   13   0x0000000000db27a3 EThread::process_event(Event*, int) + 0x331
   14   0x0000000000db2d3b EThread::process_queue(Queue<Event, Event::Link_link>*, int*, int*) + 0x1cb
   15   0x0000000000db33d8 EThread::execute_regular() + 0x4c0
   16   0x0000000000db4307 EThread::execute() + 0x2e9
   17   0x0000000000db098a spawn_thread_internal(void*) + 0xfd
   18   0x00002b34a7476ea5 start_thread + 0xc5
   19   0x00002b34a81ac8dd clone + 0x6d
   ```
   
   
   Line 955 is this portion of a switch statement in HttpSM::state_watch_for_client_abort(int event, void *data):
   
   ```
     case VC_EVENT_WRITE_COMPLETE:
       // 100-continue handler
       ink_assert(t_state.hdr_info.client_request.m_100_continue_required);
       if (ua_entry->write_buffer) {
         ink_assert(ua_entry->write_vio && !ua_entry->write_vio->ntodo());
         free_MIOBuffer(ua_entry->write_buffer);
         ua_entry->write_buffer = nullptr;
       }
       break;
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] shinrich commented on issue #6799: HttpTunnel / H2 assertion on Docs (9.0.x)

Posted by GitBox <gi...@apache.org>.
shinrich commented on issue #6799:
URL: https://github.com/apache/trafficserver/issues/6799#issuecomment-630404876


   I think that this is probably due to https://github.com/apache/trafficserver/pull/6732.  That PR attempts to replace do_io_write(nullptr, 0, nullptr) calls with do_io_write(obj, 0, nullptr) calls, so that connection shutdowns, failures, and timeouts get delivered to the HttpSM or the ClientSession so the object has a chance to clean out references to the shutting down client_vc.
   
   However, it looks like in the Http2Stream logic, when write_ready occurs on the socket, an outstanding do_io_write of 0 will get reinterpretted as a WRITE_COMPLETE, which will trigger the assert in state_watch_for_client_abort.
   
   We could change the logic in Http2Stream to issue no write event in the vio.nbytes was 0.  Need to look and see if this is an issue for Http1 as well.
   
   In talking with @a-canary and @SolidWallOfCode, we would like to make more explicit do_io statements to indicate to only callback the continuation if the netvc is shutting down. 
   
   I'll update the ATS9 version of this PR with the WRITE_COMPLETE change so you can test on docs.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] shinrich commented on issue #6799: HttpTunnel / H2 assertion on Docs (9.0.x)

Posted by GitBox <gi...@apache.org>.
shinrich commented on issue #6799:
URL: https://github.com/apache/trafficserver/issues/6799#issuecomment-663077513


   I think this is addressed by PR #6889 which has been merged to 9.0.x


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] shinrich closed issue #6799: HttpTunnel / H2 assertion on Docs (9.0.x)

Posted by GitBox <gi...@apache.org>.
shinrich closed issue #6799:
URL: https://github.com/apache/trafficserver/issues/6799


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org