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

npm database grows unexpectedly large on cache expired requests

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.11.2, 2.11.3
    • Fix Version/s: 2.11.4
    • Component/s: NPM
    • Labels:
    • Story Points:
      1
    • Sprint:
      Sprint 44

      Description

      On every npm proxy repository cache expiry, when the remote is checked for metadata updates, then the npm Orient DB database file default.pcl file grows by a large unexpected amount. In theory I would expect no need to store this much new data in the database for something that did not really change.

      Reproduce using 2.11.3-01:

      1. create npm proxy repo to https://registry.npmjs.org
      2. Set all cache settings to 1 minute ( for testing purposes ). Save. These will display as 1,0,0,1 ( UI bug, not the issue )
      3. note sonatype-work/nexus/db/npm/default.pcl size: mine is 65k
      4. request http://localhost:8081/nexus/content/repositories/npm/express and get 200 response

      > curl -v -4 http://localhost:8081/nexus/content/repositories/npm/express -o /dev/null
      * Hostname was NOT found in DNS cache
      *   Trying 127.0.0.1...
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
        0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to localhost (127.0.0.1) port 8081 (#0)
      > GET /nexus/content/repositories/npm/express HTTP/1.1
      > User-Agent: curl/7.39.0
      > Host: localhost:8081
      > Accept: */*
      > 
      < HTTP/1.1 200 OK
      < Date: Mon, 01 Jun 2015 18:07:29 GMT
      < Server: Nexus/2.11.3-01
      < X-Frame-Options: SAMEORIGIN
      < X-Content-Type-Options: nosniff
      < Accept-Ranges: bytes
      < Content-Type: application/json
      < Last-Modified: Mon, 01 Jun 2015 18:07:29 GMT
      < Content-Length: 505713
      < 
      { [data not shown]
      100  493k  100  493k    0     0   754k      0 --:--:-- --:--:-- --:--:--  756k
      * Connection #0 to host localhost left intact
      

      5. note default.pcl size: mine becomes 449K
      6. wait more than 1 minute for cache expiry. Set logger remote.storage.outbound to DEBUG.
      7. request express again - verify 304 not modified response from remote, note default.pcl size increase - now size is: 833K
      8. repeat - for every cache expiry, default.pcl will grow over 400 k.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              plynch Peter Lynch
              Reporter:
              plynch Peter Lynch
              Last Updated By:
              Peter Lynch Peter Lynch
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Date of First Response:

                  tigCommentSecurity.panel-title