Reputation: 6287
Time to time webpage receives corrupted json text:
"\u0000\u0000\u0000 ... \u0000\u0000\u0000\u00009cd8-287f-4df0-a645-558e5cff0c63","name":"Corn","symbols":["ZCE?1","ZCE?2","ZCE?3","ZCE?4","ZCE?5","ZCE?6","F.US.ZCEZ24"]},{"id":"de2579b3-5340-40ff-9ab3-dea0dbe774dc","name":"MN Spring Wheat","symbols":["F.US.MWEU23","F.US.MWEZ23","F.US.MWEH24","F.US.MWEK24","F.US.MWEN24","F.US.MWEU24","F.US.MWEZ24"]},{"id":"e4300ad3-ae20-4ea1-ba6e-fcae7b12b41f","name":"Metals","symbols":["GCE","FGD","CPE","TGD","SIE","LDKZ","GCES2","PLE","TPL","LALZ","LZHZ","PA","PAE","LNIZ","TMG"]},{"id":"ee406e54-b082-4dce-9eb0-361467ebd4a2","name":"Corn","symbols":["ZCE?1","ZCE?2","ZCE?3","ZCE?4","ZCE?5","ZCE?6","F.US.ZCEZ24"]}]"
I.e. significant part of the response is replaced by \u0000.
I am using ASP.NET Core 8 with response caching, hosted within docker container in kuber cluster.
Controller code:
[ResponseCache(VaryByQueryKeys = ["ts", "brandName"], Duration = 2592000 /* 30 days */)]
public async Task<IActionResult> GetBrandSymbolLists(string brandName) {
try
{
AssetPackageSymbolListDto[] result = [];
var brand = await em.Brand.GetBrandByNameAsync(brandName);
var packageId = await em.BrandContentProfile.GetProfilePackageIdAsync(brand.ProfileId);
if (packageId.HasValue)
{
result = (await em.AssetPackageSymbolList
.GetByPackageIdAsync(packageId.Value))
.Select(l => new AssetPackageSymbolListDto(l))
.ToArray();
}
return Ok(result);
}
catch (Exception ex)
{
logger.LogError(ex, "Failed to get profile symbol lists");
return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);
}
}
What can go wrong here: json serialization, server-side response cache get corrupted, client-side cache get corrupted?
Is it ok to have such long duration value?
Upvotes: 1
Views: 37