Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-18494

UI upload fails if it takes more than 60 seconds

    XMLWordPrintable

    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.

      WARN that may be reported in nexus.log
      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:

      https://help.sonatype.com/repomanager3/configuration/system-configuration#SystemConfiguration-UIRequestTimeout

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                mmartz Michael Martz
                Reporter:
                rseddon Rich Seddon
                CC:
                Mike Brantley
                Last Updated By:
                Phillip Ngo
                Team:
                NXRM - Tron
              • Votes:
                1 Vote for this issue
                Watchers:
                10 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Date of First Response: