Open wzrdtales opened 4 years ago
Yeah this makes sense. How do we first define a (pseudo) test case to capture this?
something like that
t (timeout): 60 * 1000
set history prune interval to almost immediate
spawn n>1 requests, finishing work (nt1) in no time at all
spawn n>1 requests, finishing work (nt2) in a time window big enough to remain in the list
check history table after success of nt1 for length delayed by the prune interval and probably new cache/cleanup interval -> expect to find only nt2 in list
cleanup
see for a test quickly put together
History
seems to have no disconnected clean up aside from the prune interval. This is directly connected with the timeout. This is pretty unhealthy, since even when these request are finished they will be kept in history way too long, which ends up in a high frequency service where you set this timeout higher to lower the failure rate by timeouts on high peak hours to completely hog and leak the memory. The application will become unresponsive and disfunctional.Instead the history should reset the timelimit to a different value than timeout after the execution was successful and send back to the client.