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

Regression: Nexus 3 returns 501, 400 and 204 responses for MKCOL requests

    XMLWordPrintable

    Details

    • Story Points:
      2

      Description

      Nexus 3 returns 501, 400, and 204 responses for MKCOL requests:

       

      127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] "MKCOL /repository/ HTTP/1.1" 400 0 1 "Jakarta Commons-HttpClient/3.1"

      127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] "MKCOL /repository/raw/site/ HTTP/1.1" 204 0 1 "Jakarta Commons-HttpClient/3.1"

      127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] "MKCOL /repository/raw/ HTTP/1.1" 400 0 1 "Jakarta Commons-HttpClient/3.1"

      127.0.0.1 - admin [01/Nov/2017:13:37:07 -0500] "MKCOL /repository/ HTTP/1.1" 400 0 2 "Jakarta Commons-HttpClient/3.1"

      127.0.0.1 - - [01/Nov/2017:13:37:07 -0500] "MKCOL / HTTP/1.1" 501 0 1 "Jakarta Commons-HttpClient/3.1"

       

      It should be returning 405. This is covered here for Nexus 2.x:

      https://issues.sonatype.org/browse/NEXUS-6169

      It is currently returning 400 for MKCOL within a repository, and 501 for MKCOL to the context root, and 204 for other directory creation requests.

       

      This error response can break builds, and cause HTTP monitoring alarms to be raised when they should not be.

      The 204 responses are causing the maven-site-plugin to make separate MKCOL requests to create each parent directory individually, rather than giving up after the first 405 is received.  This causes site deploys to Nexus Repo 3 to take much longer than they did for Nexus Repo 2, even though the time for processing the PUT requests is faster in Repo 3.

      Here is a sample of requests for Nexus Repo 2:

      123.123.123.123 - admin [13/Jun/2019:14:29:18 -0400] "MKCOL /nexus/content/sites/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/images/ HTTP/1.1" 405 654 4
      123.123.123.123 - admin [13/Jun/2019:14:29:18 -0400] "PUT /nexus/content/sites/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/./images/icon_warning.gif HTTP/1.1" 201 0 7

      And Nexus Repo 3:

      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/images/ HTTP/1.1" 204 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/ HTTP/1.1" 204 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/project/ HTTP/1.1" 204 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/blah/ HTTP/1.1" 204 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/bar/fubar/tools/ HTTP/1.1" 204 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/bar/fubar/ HTTP/1.1" 204 0 0 2
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/bar/ HTTP/1.1" 204 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/foo/ HTTP/1.1" 204 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/org/ HTTP/1.1" 204 0 0 2
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/site/ HTTP/1.1" 400 0 0 2
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/repository/ HTTP/1.1" 400 0 0 1
      123.123.123.123 - - [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/ HTTP/1.1" 501 0 0 0
      123.123.123.123 - - [13/Jun/2019:14:06:46 -0400] "MKCOL /nxrm/ HTTP/1.1" 501 0 0 1
      123.123.123.123 - admin [13/Jun/2019:14:06:46 -0400] "PUT /nexus/content/sites/site/org/foo/bar/fubar/tools/blah/project/0.0.1-SNAPSHOT/./images/icon_warning.gif HTTP/1.1" 201 0 7

      As you can imagine, for a large site deploy all those extra MKCOL requests become very time consuming.

      Expected: Nexus Repo 3 should return HTTP 405 (method not allowed) for all MKCOL requests, just as Nexus Repo 2 does.
       

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              mbucher Michael Bucher
              Reporter:
              rseddon Rich Seddon
              Last Updated By:
              Peter Lynch Peter Lynch
              Team:
              NXRM - Morpheus
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Date of First Response:

                  tigCommentSecurity.panel-title