shinrich commented on pull request #8268:
URL: https://github.com/apache/trafficserver/pull/8268#issuecomment-902813001


   The problem is we were marking that the post body should be chunked.  But in 
the post redirect case, the data is being replayed from a static buffer.  There 
is no real VC to be doing the chunked calculation against.  So p->do_chunking 
is not set.  So chunked_buffer_start is not set.  So the call to clone that 
nullptr causes the crash.
   
   ```
   [ 00 ] traffic_server      HttpTunnel::producer_run(HttpTunnelProducer*)     
           ( P_IOBuffer.h:753 )
   [ 01 ] traffic_server      HttpTunnel::tunnel_run(HttpTunnelProducer*)       
           ( HttpTunnel.cc:720 )
   [ 02 ] traffic_server      HttpSM::do_setup_post_tunnel(HttpVC_t)            
           ( HttpSM.cc:5923 )
   [ 03 ] traffic_server      HttpSM::state_send_server_request_header(int, 
void*)         ( HttpSM.cc:2197 )
   [ 04 ] traffic_server      HttpSM::state_read_server_response_header(int, 
void*)        ( HttpSM.cc:2004 )
   [ 05 ] traffic_server      HttpSM::main_handler(int, void*)                  
           ( HttpSM.cc:2701 )
   [ 06 ] traffic_server      write_signal_and_update(int, UnixNetVConnection*) 
           ( UnixNetVConnection.cc:117 )
   [ 07 ] traffic_server      write_to_net_io(NetHandler*, UnixNetVConnection*, 
EThread*)  ( UnixNetVConnection.cc:162 )
   [ 08 ] traffic_server      NetHandler::process_ready_list()                  
           ( UnixNet.cc:432 )
   [ 09 ] traffic_server      NetHandler::waitForActivity(long)                 
           ( UnixNet.cc:552 )
   [ 10 ] traffic_server      EThread::execute_regular()                        
           ( UnixEThread.cc:303 )
   [ 11 ] traffic_server      execute                                           
           ( UnixEThread.cc:364 )
   [ 12 ] traffic_server      EThread::execute()                                
           ( UnixEThread.cc:342 )
   [ 13 ] traffic_server      spawn_thread_internal                             
           ( Thread.cc:92 )
   [ 14 ] libpthread-2.17.so  start_thread                                      
           ( pthread_create.c:307 )
   ```
   
   I think in the past (9.0), we were placing transfer-encoding headers on the 
H2 client requests.  And chunkifying the H2 request data before it came to the 
HttpSM.  With 9.1, we cleaned up that logic.  


-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to