charts icon indicating copy to clipboard operation
charts copied to clipboard

Artifactory CPP-CE helm chart deployment fails, reasons unclear

Open qwc opened this issue 2 months ago • 1 comments

hi,

I am trying to get the Helm chart for artifactory the cpp community edition working.

The overall logs are spammed with missing join key, but actually other log elements tell that it's found.

As the overall log file wasn't really helping at all and also the existing issues did not provide a usable solution to the fishy reasons, why it's not running at all, I did try to concentrate on the artifactory container.

This NPE jumped at me, I would guess it's at least one of the reasons artifactory does not start up properly.

2025-10-09T09:26:09.161Z [jfrt ] [ERROR] [d8c383f2127dee56f27143e739846ddb] [.BasicConfigurationManager:241] [Catalina-utility-1  ] - Can't save upgrade data for version CompoundVersionDetails(version=7.117.15, packageHandlerVersion=null, buildNumber=LOCAL, timestamp=1167040800000, mfeVersion=null)
java.lang.NullPointerException: Data cannot be null
        at org.jfrog.storage.wrapper.BlobWrapper.<init>(BlobWrapper.java:70)
        at org.artifactory.storage.db.fs.dao.ConfigHistoryDao.insert(ConfigHistoryDao.java:58)
        at org.artifactory.storage.db.fs.dao.ConfigHistoryDao.saveConfigHistory(ConfigHistoryDao.java:53)
        at org.artifactory.storage.db.fs.service.VersionHistoryServiceImpl.saveConfig(VersionHistoryServiceImpl.java:31)
        at org.artifactory.lifecycle.webapp.servlet.BasicConfigurationManager.saveUpgradeData(BasicConfigurationManager.java:226)
        at org.artifactory.lifecycle.webapp.servlet.BasicConfigurationManager.initArtifactoryInstallation(BasicConfigurationManager.java:167)
        at org.artifactory.lifecycle.webapp.servlet.BasicConfigurationManager.initialize(BasicConfigurationManager.java:137)
        at org.artifactory.lifecycle.webapp.servlet.ArtifactoryHomeConfigListener.initBasicConfigManager(ArtifactoryHomeConfigListener.java:60)
        at org.artifactory.lifecycle.webapp.servlet.ArtifactoryHomeConfigListener.contextInitialized(ArtifactoryHomeConfigListener.java:52)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4046)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4474)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:571)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:655)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:632)
        at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1881)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Thread.java:1583)

On the other side, a goroutine stack trace mentions a missing shared.security.joinKey, see:

2025-10-09T10:18:30.055Z [jfmd ] [ERROR] [                ] [keys.go:23                    ] [main                ] - Cluster join: Failed resolving join key: failed resolving 'shared.security.joinKey' key; file does not exist: /opt/jfrog/artifactory/var/etc/security/join.key
goroutine 1 [running]:
runtime/debug.Stack()
        /var/jenkins_home/tools/org.jenkinsci.plugins.golang.GolangInstallation/go-1.24.6/src/runtime/debug/stack.go:26 +0x5e
jfrog.com/jfrog-go-commons/v7/pkg/log.(*standardLogger).Panicfc(0xc0005caff0, {0x2e52258, 0xc0005b46c0}, {0xc0000ee460, 0x9e}, {0x0, 0x0, 0x0})
        goroot/pkg/mod/jfrog.com/jfrog-go-commons/[email protected]/pkg/log/standard_logger.go:101 +0xbf
jfrog.com/metadata/v7/services/common.MustResolveSecurityKeys({0x2e52258, 0xc0005b46c0}, {0x2e5a960, 0xc000893130}, {0x2e68da8, 0xc0005caff0})
        jfrog.com/metadata/[email protected]/services/common/keys.go:23 +0x18c
main.main()
        jfrog.com/metadata/[email protected]/metadata.go:35 +0x2e5
 [init]
panic: Cluster join: Failed resolving join key: failed resolving 'shared.security.joinKey' key; file does not exist: /opt/jfrog/artifactory/var/etc/security/join.key
        goroutine 1 [running]:
        runtime/debug.Stack()
                /var/jenkins_home/tools/org.jenkinsci.plugins.golang.GolangInstallation/go-1.24.6/src/runtime/debug/stack.go:26 +0x5e
        jfrog.com/jfrog-go-commons/v7/pkg/log.(*standardLogger).Panicfc(0xc0005caff0, {0x2e52258, 0xc0005b46c0}, {0xc0000ee460, 0x9e}, {0x0, 0x0, 0x0})
                goroot/pkg/mod/jfrog.com/jfrog-go-commons/[email protected]/pkg/log/standard_logger.go:101 +0xbf
        jfrog.com/metadata/v7/services/common.MustResolveSecurityKeys({0x2e52258, 0xc0005b46c0}, {0x2e5a960, 0xc000893130}, {0x2e68da8, 0xc0005caff0})
                jfrog.com/metadata/[email protected]/services/common/keys.go:23 +0x18c
        main.main()
                jfrog.com/metadata/[email protected]/metadata.go:35 +0x2e5


goroutine 1 [running]:
jfrog.com/jfrog-go-commons/v7/pkg/log.defaultEventFactory.(*Logger).Panic.func1({0xc000660700?, 0x0?})
        goroot/pkg/mod/github.com/rs/[email protected]/log.go:405 +0x27
github.com/rs/zerolog.(*Event).msg(0xc0005c8e70, {0xc000660700, 0x342})
        goroot/pkg/mod/github.com/rs/[email protected]/event.go:158 +0x2aa
github.com/rs/zerolog.(*Event).Msgf(0xc0005c8e70, {0xc0000ea0b0?, 0xc000935c00?}, {0xc000935ce8?, 0x4565d20?, 0x3?})
        goroot/pkg/mod/github.com/rs/[email protected]/event.go:131 +0x46
jfrog.com/jfrog-go-commons/v7/pkg/log.(*standardLogger).logMessage(0xc0005caff0, {0x2e52258, 0xc0005b46c0}, 0x5, {0xc0000ea0b0, 0xa1}, {0xc000935ce8, 0x1, 0x1})
        goroot/pkg/mod/jfrog.com/jfrog-go-commons/[email protected]/pkg/log/standard_logger.go:130 +0x2b8
jfrog.com/jfrog-go-commons/v7/pkg/log.(*standardLogger).Panicfc(0xc0005caff0, {0x2e52258, 0xc0005b46c0}, {0xc0000ee460, 0x9e}, {0x0, 0x0, 0x0})
        goroot/pkg/mod/jfrog.com/jfrog-go-commons/[email protected]/pkg/log/standard_logger.go:102 +0x1c5
jfrog.com/metadata/v7/services/common.MustResolveSecurityKeys({0x2e52258, 0xc0005b46c0}, {0x2e5a960, 0xc000893130}, {0x2e68da8, 0xc0005caff0})
        jfrog.com/metadata/[email protected]/services/common/keys.go:23 +0x18c
main.main()
        jfrog.com/metadata/[email protected]/metadata.go:35 +0x2e5

Overall I tried at least 4 different Chart versions, with similar output, except the NPE is new since 7.117.17

Logfile of the artifactory container of the artifactory pod, last try with updated helm chart to 7.117.18 logs-artifactory-2025-10-09-3.txt

Full Logfile of all containers: logs-2025-10-09.txt

values.yml, stripped off passwords and image tags, as these come from an internal docker repository. values-stripped.yml

qwc avatar Oct 09 '25 10:10 qwc

Could be related to #1859, maybe #1482 and #1479. I think I remember additional issues might be related, but cannot find them ad-hoc.

qwc avatar Oct 23 '25 06:10 qwc