HTTP byte ranges are ignored on cache miss

The repro is quite simple:
var hackId=Math.floor(Math.random()*100000);
fetch("https://browsercraft.cheerpj.com/lwjgl/lwjgl-2.9.3.jar?hack="+hackId, { headers: { range: "bytes=0-100" } })
fetch("https://browsercraft.cheerpj.com/lwjgl/lwjgl-2.9.3.jar?hack="+hackId, { headers: { range: "bytes=0-100" } })
var hackId=Math.floor(Math.random()*100000);
fetch("https://browsercraft.cheerpj.com/lwjgl/lwjgl-2.9.3.jar?hack="+hackId, { headers: { range: "bytes=0-100" } })
fetch("https://browsercraft.cheerpj.com/lwjgl/lwjgl-2.9.3.jar?hack="+hackId, { headers: { range: "bytes=0-100" } })
The expected behavior is that a 206 partial content response is returned for both requests, but actually the first one, being uncached, will incorrectly return 200. @Walshy Since you helped us isolate a previous byte range problem. This time we can provide the repro so it should be easier to understand what is going on.
6 Replies
Walshy
Walshy•4mo ago
aww not again cc: @Skye
apignotti
apignottiOP•4mo ago
Sorry guys, not a fan of bringing bad news 🙂
Walshy
Walshy•4mo ago
I can repro in browser but with curl both return 200 which is fun Either way, reporting - ty!
apignotti
apignottiOP•4mo ago
@Walshy Hi, any news on this issue? Should we open a ticket as well?
Mamali2323
Mamali2323•3mo ago
🌹
apignotti
apignottiOP•3mo ago
@Walshy I am sorry to ping you again, is there any news on this? I've also raised a support ticket, but it seems the triage engineer is not taking the issue seriously. It seems absolutely clear to me that the CDN behaving inconsistently between cache misses and hits is a serious problem, any suggestion to getting the attention the issue requires? There is another data point I can add: Enabling the tiered cache feature "fixes" the problem. As a workaround for us it's not too bad, but it seems like this just hides a deeper issue.

Did you find this page helpful?