Upgrade issue from 3.36 to 3.63

Hi guys,

I have upgraded from 3.36 to 3.63 ver but for some reason, all the packages in each repository such as Docker, Maven, Raw, Yum, npm, etc doen’t show up at all after that which I’m not sure why this is occurring so could you please help me out?

FYI, here are some steps taken to upgrade

  1. We set up an OSS 3.36 Nexus as a docker container which has a separate data directory on a vm itself
  2. I stopped the container and docker service first and then removed the component, config, and security directories in db dir
  3. Copied those backup files into the restore-from-backup dir and also put all the files copied from the blobs of the previous Nexus system
  4. Restarted docker and the container but can’t see anything in each repo

I found some logs which might be helpful for you guys. Please let me know. Thanks!

2023-12-11 17:24:29,040+0000 WARN [FelixStartLevel] *SYSTEM uk.org.lidalia.sysoutslf4j.context.SysOutOverSLF4JInitialiser - Your logging framework class org.ops4j.pax.logging.slf4j.Slf4jLogger is not known - if it needs access to the standard println methods on the console you will need to register it by calling registerLoggingSystemPackage

2023-12-11 17:25:26,901+0000 INFO [elasticsearch[CA84EC3A-C2F6B9FE-06F36D86-ADCB61DA-2A676E34][clusterService#updateTask][T#1]] *SYSTEM org.elasticsearch.cluster.metadata - [CA84EC3A-C2F6B9FE-06F36D86-ADCB61DA-2A676E34] [2125fa3f7391a5ea7f8ea8119e03260397dae10d] update_mapping [component]
2023-12-11 17:25:35,623+0000 INFO [qtp12879676-429] *UNKNOWN org.apache.shiro.session.mgt.AbstractValidatingSessionManager - Enabling session validation scheduler…
2023-12-11 17:25:35,632+0000 INFO [qtp12879676-429] *UNKNOWN org.ehcache.jsr107.ConfigurationMerger - Configuration of cache shiro-activeSessionCache will be supplemented by template nexus-default
2023-12-11 17:25:35,635+0000 INFO [qtp12879676-429] *UNKNOWN org.ehcache.core.EhcacheManager - Cache ‘shiro-activeSessionCache’ created in EhcacheManager.
2023-12-11 17:25:35,636+0000 INFO [qtp12879676-429] *UNKNOWN org.ehcache.jsr107.Eh107CacheManager - Registering Ehcache MBean javax.cache:type=CacheConfiguration,CacheManager=file./opt/sonatype/nexus/etc/fabric/ehcache.xml,Cache=shiro-activeSessionCache
2023-12-11 17:25:35,636+0000 INFO [qtp12879676-429] *UNKNOWN org.ehcache.jsr107.Eh107CacheManager - Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./opt/sonatype/nexus/etc/fabric/ehcache.xml,Cache=shiro-activeSessionCache
2023-12-11 17:25:35,650+0000 INFO [qtp12879676-429] *UNKNOWN org.sonatype.nexus.internal.security.anonymous.AnonymousManagerImpl - Loaded configuration: OrientAnonymousConfiguration{enabled=false, userId=‘anonymous’, realmName=‘NexusAuthorizingRealm’}
2023-12-11 17:25:55,233+0000 INFO [qtp12879676-433] *UNKNOWN org.ehcache.jsr107.ConfigurationMerger - Configuration of cache enterprise-ldap will be supplemented by template nexus-default
2023-12-11 17:25:55,237+0000 INFO [qtp12879676-433] *UNKNOWN org.ehcache.core.EhcacheManager - Cache ‘enterprise-ldap’ created in EhcacheManager.
2023-12-11 17:25:55,238+0000 INFO [qtp12879676-433] *UNKNOWN org.ehcache.jsr107.Eh107CacheManager - Registering Ehcache MBean javax.cache:type=CacheConfiguration,CacheManager=file./opt/sonatype/nexus/etc/fabric/ehcache.xml,Cache=enterprise-ldap
2023-12-11 17:25:55,238+0000 INFO [qtp12879676-433] *UNKNOWN org.ehcache.jsr107.Eh107CacheManager - Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./opt/sonatype/nexus/etc/fabric/ehcache.xml,Cache=enterprise-ldap
2023-12-11 17:26:13,792+0000 INFO [periodic-4-thread-1] *SYSTEM org.sonatype.nexus.repository.httpclient.internal.HttpClientFacetImpl - Repository status for nuget.org-proxy changed from READY to AVAILABLE - reason n/a for n/a
2023-12-11 17:26:13,797+0000 WARN [periodic-4-thread-1] *SYSTEM com.sonatype.nexus.repository.nuget.orient.internal.OrientNugetProxyFacet - Exception com.fasterxml.jackson.core.JsonParseException: Unexpected character (‘<’ (code 60)): expected a valid value (JSON String, Number, Array, Object or token ‘null’, ‘true’ or ‘false’)
at [Source: (org.apache.http.conn.EofSensorInputStream); line: 1, column: 2] checking remote for update, proxy repo nuget.org-proxy failed to fetch https://www.nuget.org/api/v2/, content not in cache.
2023-12-11 17:26:13,799+0000 WARN [periodic-4-thread-1] *SYSTEM com.sonatype.nexus.repository.nuget.orient.internal.v3.OrientNugetV3ProxyFacetImpl - Failed to refresh service index on nuget.org-proxy

I’m not sure about your migration steps they sound questionable. Simply duplicating and mounting as a volume your sonatype-work/nexus3 directory ought to be enough without going through restore.

The warning for OrientNugetV3ProxyFacetImpl referencing https://www.nuget.org/api/v2/ might suggest an incorrect URL for the NuGet v3 repository, usually this ends in index.json

Hi Matthew,
Basically, we’re migrating the Nexus from OCI to AWS so that’s why I had to go through the db restoration procedure and can see all the packages on the same 3.36 ver without any issues after migrating however, as far as upgrading is concerned, I tried to upgrade from 3.36 to 3.45 or 3.60 or 3.63 vers respectively but none of them gave me the right outcome in the end so am assuming that this could be related to blob or index / repository mapping issue which I’m not sure clearly.

I have attached a few more suspicious lines of my container logs generated when I tried to upgrade from 3.36 to 3.63 ver since there are so many logs and am not sure what you’re looking for specifically so could you please have a look?

2023-12-12 02:43:40,546+0000 ERROR [ForkJoinPool.commonPool-worker-1] *SYSTEM org.sonatype.nexus.internal.node.orient.OrientLocalNodeAccess - Failed to determine hostname, using nodeId instead.

2023-12-12 02:44:17,716+0000 INFO [elasticsearch[D870AD93-861FC79A-32B268FE-EED350E8-967A0208][clusterService#updateTask][T#1]] *SYSTEM org.elasticsearch.cluster.metadata - [D870AD93-861FC79A-32B268FE-EED350E8-967A0208] [09d1df893c8dc3b8b4949b3552b14bcb1661fee5] creating index, cause [api], templates [], shards [1]/[0], mappings [component]

As for the mounting point, here are source and destination mount points as below.

“Mounts”: [
{
“Type”: “bind”,
“Source”: “/opt/nexus/data”,
“Destination”: “/nexus-data”,
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
}
I believe you guys created of a symbolic link between “nexus-data” and "sonatype-work/nexus3 in the docker container image.

Just to confirm my understanding of your situation, is the following accurate?

  • You were on OCI running 3.36
  • You migrated to AWS running 3.36, and Nexus is working as expected
  • You then upgraded the AWS instance to various versions (3.45/3.60/3.63) and you’re seeing issues.

Thank you Ricky for answering my question. Yeah, I was able to migrate & upgrade the prod by myself eventually. I had a blob mismatch issue during the migration but fixed that also.
One minor issue is that, when I upgraded it to 3.46 ver and try to search for a package by keyword in one of the repos, I had an error message came out saying that “Uncaught TypeError: Cannot read properties of null(reading ‘setTitle’)” which I’m not sure it is an expected bug or not but the keyword field is still showing and working after selecting though;