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

karaf data tmp directory may cache old wrapper bundles despite cleaning karaf data cache

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: New
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 3.0.0, 3.0.1
    • Fix Version/s: None
    • Component/s: Upgrade
    • Labels:
      None
    • Notability:
      4

      Description

      Perform an upgrade of nexus 3 from an earlier version of nexus 3.

      Upgrade requires the karaf bundle cache to be cleaned using a clean_cache marker file inside the ${karaf.data} property value directory or by manually deleting ${karaf.data}/cache.

      The marker file cleans ${karaf.data}/cache , but it does not clean ${karaf.data}/tmp where previously cached 'wrapper' bundles are located from the earlier version.

      At this time, using the old wrapper files do no harm, however there might be confusion when the bundles list is examined in the UI. See attached image of what one may see whe upgrading from 3.0.0-03 to 3.0.1-01 - bundles starting with wrap_file referencing the previous or older version. These bundles can be found inside ${karaf.data}/tmp

      There is no functional harm as explained by Stuart McCulloch:

      If the new version of nexus uses a different version of the wrapped library then it will ignore the previous version and wrap the new version - if it's using the same version as before then the wrapping should have produced the same result (except the path might be different) so it's ok to re-use the one from data/tmp - the only issue would be if we had a custom wrapping instruction for a given library which changed from one release to the next without the version of the underlying library changing

      Currently we only have a couple of custom wrapping instructions (which are very simple) - the rest of the wrapped libraries use karaf's default wrapping instructions - and the only reason to change any of our custom wrapping instructions is when there's a change in the underlying library being wrapped because its version has changed (usually because it no longer needs to be wrapped) which means karaf wouldn't re-use the old wrapped bundle anyway

      Workaround For Using the Upgraded Version Wrapper bundles instead

      1. Stop nexus.
      2. Delete ${karaf.data}/tmp
      3. Add another clean_cache marker file at ${karaf.data}/clean_cache
      4. Start Nexus
      5. Verify the bundles list in the UI no longer refers to old version wrap_files

      Expected

      • Nexus startup should provide an automatic mechanism to clean up cached wrapper files to avoid potential confusion and future potential upgrade issues

        Attachments

          Activity

            People

            Assignee:
            Unassigned Unassigned
            Reporter:
            plynch Peter Lynch
            Last Updated By:
            Rich Seddon Rich Seddon
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:

                tigCommentSecurity.panel-title