lancachenet / monolithic

A monolithic lancache service capable of caching all CDNs in a single instance
https://hub.docker.com/r/lancachenet/monolithic
Other
728 stars 73 forks source link

monolithic server is sending bad chunks to Steam for games not in cache #88

Closed clee closed 3 years ago

clee commented 4 years ago

Describe the issue you are having

Steam reports that chunks its getting from the monolithic server on my LAN (10.10.10.220) are bad:

[2020-01-23 15:52:10] HTTP (CDN,64) - edge.steam-dns.top.comcast.net (10.10.10.220:80 / 10.10.10.220:80, host: edge.steam-dns.top.comcast.net): Received 0 (Invalid) HTTP response for depot 250821
[2020-01-23 15:52:10] HTTP (CDN,64) - edge.steam-dns.top.comcast.net (10.10.10.220:80 / 10.10.10.220:80, host: edge.steam-dns.top.comcast.net): Disabling dual-stack for this connection
[2020-01-23 15:52:10] Failed unpacking chunk "62c8c8cdff8a5a41b3bd725662458f3fa576a2ee" from "::ffff:a0a:adc/depot/250821/chunk/62c8c8cdff8a5a41b3bd725662458f3fa576a2ee" (Unpack failed (c:1054848,u:0,b:2097152))

How are you running the container(s)?

docker run --name steamcache --restart=unless-stopped -v /home/lancache/cache:/data/cache -v /home/lancache/logs:/data/logs -v /home/lancache/cachedomains:/data/cachedomains -p 80:80 --detach -e CACHE_MAX_AGE=256d -e CACHE_DISK_SIZE=1024g -e CACHE_MEM_SIZE=2048m --init lancachenet/monolithic:latest                  

DNS Configuration

I'm running CoreDNS on 10.10.10.224, and have it configured to serve as the SOA for lancache.steamcontent.com, responding with A records for lancache.steamcontent.com.

C:\Users\clee> nslookup lancache.steamcontent.com.
Server:  UnKnown
Address:  10.10.10.224

Name:    lancache.steamcontent.com
Addresses: 10.10.10.220

Output of container(s)

Nothing from the container directly, but my error log shows:

2020/01/23 22:52:11 [error] 1340#1340: *49944 unexpected status code 200 in slice response while reading response header from upstream, client: 172.17.0.1, server: , request: "GET /depot/250821/chunk/d88cab2d478fec1464d4027c8396e71a18b38478 HTTP/1.1", subrequest: "/depot/250821/chunk/d88cab2d478fec1464d4027c8396e71a18b38478", upstream: "http://69.241.50.42:80/depot/250821/chunk/d88cab2d478fec1464d4027c8396e71a18b38478", host: "edge.steam-dns.top.comcast.net"

These appear to be the access log entries showing the cache misses:

[steam] 172.17.0.1 / - - - [23/Jan/2020:22:52:11 +0000] "GET /depot/250821/chunk/5b04ac6980efebd9fc845ae0977d5efd23296da5 HTTP/1.1" 200 1049312 "-" "Valve/Steam HTTP Client 1.0" "MISS" "edge.steam-dns.top.comcast.net" "-"

[steam] 172.17.0.1 / - - - [23/Jan/2020:22:52:11 +0000] "GET /depot/250821/chunk/d88cab2d478fec1464d4027c8396e71a18b38478 HTTP/1.1" 200 1047501 "-" "Valve/Steam HTTP Client 1.0" "MISS" "edge.steam-dns.top.comcast.net" "-"
 ^^^^^ --- error log entry related to this chunk

[steam] 172.17.0.1 / - - - [23/Jan/2020:22:52:11 +0000] "GET /depot/250821/chunk/62c8c8cdff8a5a41b3bd725662458f3fa576a2ee HTTP/1.1" 200 1054848 "-" "Valve/Steam HTTP Client 1.0" "MISS" "edge.steam-dns.top.comcast.net" "-"
 ^^^^ --- the chunk that Steam reports is empty/bad
unspec commented 4 years ago

This might be relevant feedback for https://github.com/lancachenet/monolithic/issues/85 as you're using the new trigger domain against an ISP CDN