Details
Description
If a UI upload takes more than 60 seconds in Nexus Repo 3.14.0 then it will fail, the UI will show "operation failed as server could not be contacted". The nexus.log will show an EOF exception. This is a regression from 3.13.0.
Reproduce
Set up a web browser to run through charles proxy. In the charles throttling menu, enable throttling (I choose 100 Mbs fiber). Upload a large file (~500Mb) via UI upload. This will fail.
The same test will work with version 3.13.0.
2018-11-13 17:50:41,281-0500 WARN [qtp1394133944-512] nexusadmin org.sonatype.nexus.extdirect.internal.ExtDirectServlet - Unable to read the ext direct transaction id for upload org.eclipse.jetty.io.EofException: Early EOF at org.eclipse.jetty.server.HttpInput$3.getError(HttpInput.java:1138) at org.eclipse.jetty.server.HttpInput$3.noContent(HttpInput.java:1126) at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:313) at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:999) at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:903) at java.io.InputStream.read(InputStream.java:101) at org.apache.commons.fileupload.util.Streams.copy(Streams.java:100) at org.apache.commons.fileupload.util.Streams.copy(Streams.java:70) at org.apache.commons.fileupload.MultipartStream.readBodyData(MultipartStream.java:593) at org.apache.commons.fileupload.MultipartStream.discardBodyData(MultipartStream.java:617) at org.apache.commons.fileupload.MultipartStream.skipPreamble(MultipartStream.java:634) at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:1023) at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:1003) at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310) at org.apache.commons.fileupload.servlet.ServletFileUpload.getItemIterator(ServletFileUpload.java:154) at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:158) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
The UI may display a message to the end user stating "Operation failed as server could not be contacted".
Expected
It would be very advantageous to have a separate configurable UI timeout (or no timeout at all) for
- UI uploads
- generating support zips
These are known actions that more frequently require longer UI timeouts than all other UI activity.
Workaround
Temporarily increase the UI request timeout value from its default of 60 seconds:
Attachments
Issue Links
- is caused by
-
NEXUS-12033 no obvious method to set UI request timeout
-
- Closed
-