Resolution: Won't Do
Affects Version/s: 5.0
Fix Version/s: None
If thread gets stuck forever in generating the response and creating the cache entry, the mutex from cache entry is never removed and such entry can't be served without restart of the server. The same result occurs for infinite loop, waiting for external resources w/o timeout or when thread crashes or is stopped from server maintenance tool (thread.stop() means finally blocks are not executed, thus the mutex is not removed)
Prior to fixing
MAGNOLIA-3167 this would lead eventually into whole server to be blocked from serving the cached content. Since the fix issue is relevant only to the single resource.
There might be various reasons for such situation to occur such as programmer error, lack of resources on the server, waiting for external resources, etc. The variety of possible causes makes it more difficult to decide what to do in such situation. Possibilities are:
- keep the current behavior - if the resource could not be served once, chances are it can't be served ever without fixing the code. Not working URL makes it easier to spot and fix the problem
- remove mutex after certain time or number re-tries. This solution would make it harder to spot the pages/URLs for which problem occurs intermittently, however would allow Magnolia to recover. Another side effect is that if thread gets stuck in infinite loop due to programming error, server would be leaking threads this way eventually exhausting all the resources.