From 558fd85b3012170a8c803e374f995cad60a2b35e Mon Sep 17 00:00:00 2001 From: donoghuc Date: Tue, 11 Aug 2026 10:39:01 -0700 Subject: [PATCH] demo clone --- lib/logstash/inputs/http.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/logstash/inputs/http.rb b/lib/logstash/inputs/http.rb index ddaaaba..dc42fdb 100644 --- a/lib/logstash/inputs/http.rb +++ b/lib/logstash/inputs/http.rb @@ -218,7 +218,10 @@ def close def decode_body(headers, remote_address, body, default_codec, additional_codecs) content_type = headers.fetch("content_type", "") - codec = additional_codecs.fetch(HttpUtil.getMimeType(content_type), default_codec) + # Clone the codec per request so concurrent (pipelined) requests on the same + # connection do not share a stateful codec buffer (e.g. json_lines' + # BufferedTokenizer), which otherwise interleaves and drops/corrupts data. + codec = additional_codecs.fetch(HttpUtil.getMimeType(content_type), default_codec).clone codec.decode(body) { |event| push_decoded_event(headers, remote_address, event) } codec.flush { |event| push_decoded_event(headers, remote_address, event) } true