Skip to main content

Nexus Repository 3.39.0 Release Notes

Release May 23, 2022

Highlights in This Release

Improvements to Blob Store Reconcile Task

Database backup tasks will no longer interrupt a long-runningRepair: Reconcile component database from blob storagetask.

View Nexus, Audit, Cluster, and Task Logs in User Interface

You can now view Nexus, audit, cluster, and task logs via the log viewer in the Nexus Repository user interface.

Improved Resiliency/Disaster Recovery for File Blob Stores

File blob stores shared between multiple repository instances in an active/passive resilient deployment can now make use of the Only Blobs created since X days ago option. This was previously impossible as the reconciliation log was stored locally in the active instance, but this has now been moved into the blob store to make it accessible to the passive instance after failover. This improvement decreases failover times by reducing the time it takes for the reconciliation task to complete.

Note that, on a fresh run (i.e., no existing sonatype-work directory), the reconciliation log for newly uploaded blobs is placed in a <blob store root dir>/reconciliation folder. When launched with an existing sonatype-work directory, the upgrade job migrates the reconciliation logs from ${karaf.data}/log/blobstore/${blobstore}/ to <blob store root dir>/reconciliation.

To use this improvement, you must have the Repair - Reconcile component database from the blobstore task configured and run the task when the passive instance starts up using the v1/tasks/{id}/run REST endpoint as part of your failover automation.

This improvement only applies to file blob stores; the reconciliation log is not implemented for S3. This also means that this improvement does not apply to our newer resiliency model that relies on S3.

Prevent Blob Store Reconcile Task Interruption

We have made changes to prevent a database backup task from interrupting a long-running Repair - Reconcile component database from the blobstore task . Interruptions previously caused administrators to need to run the reconcile task again. The database backup task will no longer run if a reoncile task is in progress. If needed, you can stop the reconcile task in order to run a database backup.

View Audit, Cluster, and Task Logs in User Interface

We have extended the log viewer to allow users with the nx-all privilege to view audit, cluster, and task logs along with the nexus log through the user interface. You can access logs at AdministrationSupportLogs.

For more information, see our newly revamped logging documentation.

Bug Fixes

Description

NEXUS-22810

The POST /v1/security/content-selectors REST API now returns an appropriate error message when a user attempts to create a duplicate selector.

NEXUS-26811

The Repository Import task to import npm packages from Nexus Repository 2 to Nexus Repository 3 now retains dist-tags.

NEXUS-26846

Fixed a bug that was causing "All format" cleanup policies to disappear from the repository assignments list in the user interface after editing.

NEXUS-28107

Group repositories no longer display in the Repository Export screen as users cannot export a group repository.

NEXUS-28910

Fixed an issue with staging move operations for Maven that was impacting performance.

NEXUS-29421

Added logic to Docker - Delete unused manifests and images task to prevent accidental asset deletion.

NEXUS-29484

You can now delete an npm package's root metadata without error.

NEXUS-29502

Fixed an issue that was causing benign and unnecessary error messages to spam the logs for Nexus Repository when using PostgreSQL.

NEXUS-29639

Fixed a bug that caused tasks to fail because of a missing dataStoreName attribute in repository configuration.

NEXUS-30537

Fixed a bug that was preventing some components ending in certain characters from displaying in search results and causing errors when running the Repair - Rebuild repository search task.

NEXUS-30840

Fixed an issue that was preventing the Log4j Visualizer from matching request paths containing non-default webapp context or legacy Nexus Repository 2 content paths.

NEXUS-30850

Default realm users that differ only by character case no longer cause errors in PostgreSQL and H2.

NEXUS-31000

Fixed an issue that was causing the Repair - Reconcile component database from blob store task to fail unexpectedly.

NEXUS-31229

Fix an issue with Asset IDs on the REST API when using PostgreSQL or H2.

NEXUS-31305

The lastDownloaded field is no longer missing from component/asset REST APIs when running on PostgreSQL.

NEXUS-31322

Fixed an issue with Docker proxy exhausting the connection pool in some cases.

NEXUS-31391

Fixed issues with date handling in the Database Migrator and with return of incorrect data in the REST API.

NEXUS-31395

Improved concurrency for Docker uploads.

NEXUS-31396

Improved performance of maven metadata rebuilds on PostgreSQL.

NEXUS-31501

Improved search API performance by excluding unused content selectors and duplicate permissions from the permission check.

NEXUS-31567

The index.json files for NuGet v3 proxies now refresh periodically.

NEXUS-31573

The Database Migrator now correctly migrates tags from Orient to PostgreSQL.

NEXUS-31579

Search now works as expected in Conan repositories when the package name contains a hyphen.

NEXUS-31586

Fixed an issue with the Docker - Delete unused manifests and images task.

NEXUS-31601

Content selectors now migrate as expected from Nexus Repository 2 to Nexus Repository 3.

NEXUS-31887

The Docker GC task query now works in a more efficient way to clean up orphaned Docker layers.