Affects Version/s: None
Fix Version/s: 2.x.NEXT
As suggested in http://java.net/jira/browse/GLASSFISH-17539 , this suggestion is made into a separate issue for Grizzly. See that issue and also http://forums.java.net/node/855551?force=732 for background.
The existing timeout mechanisms appears not to be well-suited for uploads or downloads (of e.g. large files). Such requests can take a very long time, especially if the network connection is slow (think "mobile"). I'm talking about gigabytes and several hours.
Having Glassfish time out unnecessarily in the middle of an upload is really bad, and should be prevented.
Therefore, I suggest that, as long as there's reasonable traffic (x bytes / s, perhaps configurable), the usual request timeout settings should not apply. And perhaps there should be a new timeout setting, or size limit, or both, for long/big uploads (and downloads, hmm, diffrerent values for GET and POST requests?)
If you prefer a more specific suggestion:
+ Different values for POST and GET
+ Max number of bytes (default 10 GB), zero means "no limit"
+ Min speed (in B/s) during the last 60 seconds (sliding window)
- NOTE! This does not CAUSE a timeout, it STARTS a timeout timer,
which is reset if the speed comes back at any time
+ Max "idle" time (as defined above) (default 15 min), zero means "infinity"
+ Max overall time for an active request (meaning: above 'min speed') default 10 hours.
Btw, the current magic value -1 (meaning 'none') of the current request timeout settings should perhaps be 0 (with the same meaning). I at least find that more intuitive. In any case, the new suggested timeouts should have the same magic values for 'none'.
Hope this is useful.