mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 06:11:32 +02:00
BUG/MINOR: contrib/prometheus-exporter: Don't try to add empty data blocks
When the response buffer is full and nothing more can be inserted, it is important to not try to insert an empty data block. Otherwise, when the function channel_add_input() is called, the flag CF_READ_PARTIAL is set on the response channel while nothing was read and the stream is uselessly woken up. Finally, we have loop while the response buffer is full. This patch must be backported to 2.0.
This commit is contained in:
parent
1b9423d214
commit
0c55a15ce1
@ -1408,9 +1408,11 @@ static int promex_dump_global_metrics(struct appctx *appctx, struct htx *htx)
|
||||
}
|
||||
|
||||
end:
|
||||
if (out.len) {
|
||||
if (!htx_add_data_atonce(htx, out))
|
||||
return -1; /* Unexpected and unrecoverable error */
|
||||
channel_add_input(chn, out.len);
|
||||
}
|
||||
return ret;
|
||||
full:
|
||||
ret = 0;
|
||||
@ -1586,9 +1588,11 @@ static int promex_dump_front_metrics(struct appctx *appctx, struct htx *htx)
|
||||
}
|
||||
|
||||
end:
|
||||
if (out.len) {
|
||||
if (!htx_add_data_atonce(htx, out))
|
||||
return -1; /* Unexpected and unrecoverable error */
|
||||
channel_add_input(chn, out.len);
|
||||
}
|
||||
return ret;
|
||||
full:
|
||||
ret = 0;
|
||||
@ -1804,9 +1808,11 @@ static int promex_dump_back_metrics(struct appctx *appctx, struct htx *htx)
|
||||
}
|
||||
|
||||
end:
|
||||
if (out.len) {
|
||||
if (!htx_add_data_atonce(htx, out))
|
||||
return -1; /* Unexpected and unrecoverable error */
|
||||
channel_add_input(chn, out.len);
|
||||
}
|
||||
return ret;
|
||||
full:
|
||||
ret = 0;
|
||||
@ -1998,9 +2004,11 @@ static int promex_dump_srv_metrics(struct appctx *appctx, struct htx *htx)
|
||||
|
||||
|
||||
end:
|
||||
if (out.len) {
|
||||
if (!htx_add_data_atonce(htx, out))
|
||||
return -1; /* Unexpected and unrecoverable error */
|
||||
channel_add_input(chn, out.len);
|
||||
}
|
||||
return ret;
|
||||
full:
|
||||
ret = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user