MINOR: cache: disable cache if shctx_row_data_append fail

Disable the cache if the append of data failed, it should never happen
because the allocated row size is at least equal to the size of the
object to allocate.
This commit is contained in:
William Lallemand 2017-11-14 14:39:24 +01:00 committed by Willy Tarreau
parent 10935bc547
commit e1533f5790

View File

@ -171,6 +171,7 @@ cache_store_http_forward_data(struct stream *s, struct filter *filter,
if (filter->ctx && st->first_block) {
/* disable buffering if too much data (never greater than a buffer size */
if (len - st->hdrs_len > global.tune.bufsize - global.tune.maxrewrite - st->first_block->len) {
disable_cache:
filter->ctx = NULL; /* disable cache */
shctx_lock(shctx);
shctx_row_dec_hot(shctx, st->first_block);
@ -185,6 +186,8 @@ cache_store_http_forward_data(struct stream *s, struct filter *filter,
MIN(bi_contig_data(msg->chn->buf), len - st->hdrs_len));
/* Rewind the buffer to forward all data */
b_rew(msg->chn->buf, st->hdrs_len);
if (ret)
goto disable_cache;
}
}
ret = len;