code: def _chunk_data(self, data):
          
  
          assert data[-2:] == "\r\n", "CRLF"
  
          if self.gzip_decompressor:
              if not self.gzip_header_seen:
                  assert data[:2] == '\x1f\x8b', "gzip header"
                  self.gzip_header_seen = True
  
              self.process_input_buffer += self.gzip_decompressor.decompress(data[:-2])
          else:
              self.process_input_buffer += data[:-2]
  
          self.got_chunk = True
  
          if self.process_input_buffer:
              # since we now have data in the buffer, enable write events again
              logger.debug('Got data in buffer, interested in writing to process again')
              self.ioloop.update_handler(self.fd_stdin, self.ioloop.WRITE | self.ioloop.ERROR)
  
          # do NOT call read_chunks directly. This is to give git a chance to consume input.
          # we don't want to grow the buffer unnecessarily.
          # Additionally, this should mitigate the stack explosion mentioned in read_chunks
          self.ioloop.add_callback(self.read_chunks)
docs: Received chunk data