Sonatype Nexus Repository 3.61.0 Released

This release includes a new OpenShift Operator for PostgreSQL and HA deployments, proxy repository support for the Change Repository Blob Store task, and usage statistics to provide insight into your Sonatype Nexus Repository usage. There are also a number of important bug fixes in this release.

See the Sonatype Nexus Repository 3.61.0 Release Notes for full details.

1 Like

Thanks.
I was moving a Nexus 3.24 installation to a new server and wanted to use this recent release (3.61.0-02).
Unfortunately the restore process failed:

ERROR [FelixStartLevel]  *SYSTEM Felix - Framework listener delivery error.
java.lang.IllegalStateException: Found pending database restore files for {component={databaseName=component, timestamp=2023-10-06-14-18-33, version=3.24.0-02}, security={databaseName=security, timestamp=2023-10-06-14-18-33, version=3.24.0-02}, config={databaseName=config, timestamp=2023-10-06-14-18-33, version=3.24.0-02}}, but some are missing; to restore you must have files for [config, component, security, analytics]
	at org.sonatype.nexus.orient.restore.RestoreServiceImpl.checkCompleteness(RestoreServiceImpl.java:97)
	at org.sonatype.nexus.orient.restore.RestoreServiceImpl.doStart(RestoreServiceImpl.java:63)
	at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:69)
[..]

I used 3.60.0-02 - there the restore worked.

We ar seeing the same while upgrading from 3.60.0 to 3.61.0.

2023-10-13 08:53:55,610+0200 ERROR [FelixStartLevel] *SYSTEM org.sonatype.nexus.orient.restore.RestoreServiceImpl - Failed transition: NEW -> STARTED
java.lang.IllegalStateException: Found pending database restore files for {component={databaseName=component, timestamp=2022-01-10-02-30-00, version=3.37.3-02}, security={databaseName=security, timestamp=2022-01-10-02-30-00, version=3.37.3-02}, config={databaseName=config, timestamp=2022-01-10-02-30-00, version=3.37.3-02}}, but some are missing; to restore you must have files for [config, component, security, analytics]
	at org.sonatype.nexus.orient.restore.RestoreServiceImpl.checkCompleteness(RestoreServiceImpl.java:97)
	at org.sonatype.nexus.orient.restore.RestoreServiceImpl.doStart(RestoreServiceImpl.java:63)
	at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:69)
	at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
	at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:193)
	at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:57)
	at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:199)
	at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:111)
	at org.sonatype.nexus.extender.NexusContextListener.moveToPhase(NexusContextListener.java:319)
	at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:216)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1597)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.lang.Thread.run(Thread.java:750)

Moving back to version 3.60 resolved the issue

Likely you restored from backup at some point and did not follow step-8 - Restore Exported Databases

Hi,
We are actually not doing a restore. We are upgrading from a working 3.60.0 to 3.61.0 on a kubernetes cluster. When the pod is starting, it is giving the message above. When moving back to 3.60.0, the pod starts without issues.

We’re experiencing a problem similar to @robert.ziebarth & @MarcoB in this thread when trying to upgrade our Nexus OSS. We are attempting to move from version 3.57.0-0 to 3.61.0. However, during the upgrade process, we encounter the following error:

java.lang.IllegalStateException: Found pending database restore files for {component={databaseName=component, timestamp=2023-10-19-23-45-00, version=3.57.0-01}, security={databaseName=security, timestamp=2023-10-19-23-45-00, version=3.57.0-01}, config={databaseName=config, timestamp=2023-10-19-23-45-00, version=3.57.0-01}}, but some are missing; to restore you must have files for [config, component, security, analytics]
	at org.sonatype.nexus.orient.restore.RestoreServiceImpl.checkCompleteness(RestoreServiceImpl.java:97)
	at org.sonatype.nexus.orient.restore.RestoreServiceImpl.doStart(RestoreServiceImpl.java:63)
	at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:69)
	at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
	at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:193)
	at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:57)
	at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:199)
	at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:111)
	at org.sonatype.nexus.extender.NexusContextListener.moveToPhase(NexusContextListener.java:319)
	at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:216)
	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1597)
	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
	at java.lang.Thread.run(Thread.java:750)

(Looking at the trace of @robert.ziebarth it look that tries to restore from 3.24.0 and Marco 3.37.3)

From the stack trace, it suggests that we need files for [config, component, security, analytics]. However, when I followed the restoration guidelines from Nexus’s documentation, it only mentions restoring component, config, and security - there’s no mention of analytics. Looking back at our history, the last backup for analytics was somewhere around 2020. Perhaps it’s been deprecated since then?

Has anyone else experienced this, or have any insights into the discrepancy between the required files in the error message and the official documentation?

Upgrading to 3.60.0 was also for us succesfull, where 3.61.0 is not (environment is a kubernetes cluster)

Hey @ldurant any update on this? Greets

See my earlier post.

Hi @mpiggott thanks for reaching out. I don’t think i has anything to do with step 8 (if you reffering to your post from the 13th). When i’m restoring i’m not getting further than step 6.

Als like @MarcoB stated version 3.60.0 gives no issues, in v 3.61.0 these issues arrise.

If you’re intentionally restoring from backup (i.e. following the steps above) you should restore the backup to the same version of Nexus as generated the backup.

If you’re simply attempting to upgrade Nexus to a new version the error is caused by having previously restored from backup without following step-8 and removing the files. If the files are present on startup then Nexus evaluates them for potential restoration which fails on 3.61 as the backup is missing a new database added to OrientDB.

Hi @mpiggott The backup location only contains bak files from current scheduled backups. We also tried emptying the backup location when doing the upgrade to 3.61.0. It looks like the component part in the orientDB contains invalid entries. Is there any way to remove those?
I have already tried logging into the orientDB (on version 3.60) and do a ‘repair database’. After that the upgrade still fails.
Rolling back to v3.60 (with ArgoCD) gives a working version of Nexus again.