bloom icon indicating copy to clipboard operation
bloom copied to clipboard

Cached response is incomplete

Open gauteh opened this issue 5 years ago • 4 comments

Hi, I am getting clipped responses when set up with nginx. First request looks good (using curl), but second gets part of the response clipped (typically last bit of

gauteh avatar Jan 22 '20 13:01 gauteh

Do you have network traces (HTTP traces) to provide as examples?

valeriansaliou avatar Jan 24 '20 17:01 valeriansaliou

No, I'm sorry, I'll see if I get the chance to do that. I do not have too much time to debug this, so I understand if you decide to close the issue.

gauteh avatar Jan 24 '20 21:01 gauteh

Here is the test file test.html I use and the bloom.cfg: https://gist.github.com/squaresmile/151efedc0ce86c3f4701ab11852238d6

The upstream is a simple basic python -m http.server serving the html file.

The first request without caching returns the test.html file correctly.

⋊> curl -H "Bloom-Request-Shard: 0" localhost:8080/test.html
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bloom test</title>
Bloom Test
More Bloom Test

The second request with caching returns the test.html missing "Test" at the end.

⋊> curl -H "Bloom-Request-Shard: 0" localhost:8080/test.html
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bloom test</title>
Bloom Test
More Bloom⏎ 

I queried the redis data directly and the data looks fine:

>>> print(brotli.decompress(data).decode("utf-8"))
HTTP/1.1 200 OK
Server: SimpleHTTP/0.6 Python/3.8.5
Content-Type: text/html
Content-Length: 178
Last-Modified: Tue, 06 Oct 2020 18:42:46 GMT

<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bloom test</title>
Bloom Test
More Bloom Test
bloom-server 1.29.0
Redis 6.0.6

squaresmile avatar Oct 06 '20 21:10 squaresmile

Just from what i read here, might it be that the Redis takes to long to serve the cached object? Also i ran this in my development with dragonfly since its a lot faster and didnt notice this isse with around 10k req/m

hendrikkiedrowski avatar Jun 17 '23 11:06 hendrikkiedrowski