diff --git a/iocore/eventsystem/P_IOBuffer.h b/iocore/eventsystem/P_IOBuffer.h index a3193b60b00..1448f9a0caf 100644 --- a/iocore/eventsystem/P_IOBuffer.h +++ b/iocore/eventsystem/P_IOBuffer.h @@ -551,6 +551,7 @@ IOBufferReader::is_read_avail_more_than(int64_t size) TS_INLINE void IOBufferReader::consume(int64_t n) { + ink_assert(read_avail() >= n); start_offset += n; if (size_limit != INT64_MAX) { size_limit -= n; diff --git a/plugins/multiplexer/fetcher.h b/plugins/multiplexer/fetcher.h index 45e892f2bac..fe236142645 100644 --- a/plugins/multiplexer/fetcher.h +++ b/plugins/multiplexer/fetcher.h @@ -211,6 +211,8 @@ template struct HttpTransaction { self->t_.header(self->parser_.buffer_, self->parser_.location_); self->parsingHeaders_ = false; } + // Parsing headers will indirectly read from our reader. Update available accordingly. + available = TSIOBufferReaderAvail(self->in_->reader); } if (!self->parsingHeaders_) { if (self->chunkDecoder_ != NULL) {