Cannot start Jira over another node via pbrun command (Server and Data Center)
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
Jira startup fails via pbrun command due to the missing encryption file.
The following appears in the atlassian-jira.log:
2023-07-04 08:45:57,825+0200 JIRA-Bootstrap ERROR [c.a.d.c.p.c.algorithm.serialization.SerializationFile] Couldn't read file needed for encryption/decryption. Tried to read file under: javax.crypto.SealedObject_1680173326866
java.io.FileNotFoundException: javax.crypto.SealedObject_1680173326866 (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.atlassian.db.config.password.ciphers.algorithm.serialization.SerializationFile.read(SerializationFile.java:31)
at com.atlassian.db.config.password.ciphers.algorithm.AlgorithmCipher.decrypt(AlgorithmCipher.java:141)
at com.atlassian.db.config.password.ciphers.algorithm.AlgorithmCipher.decrypt(AlgorithmCipher.java:133)
at com.atlassian.jira.config.database.JdbcDatasource.lambda$parse$0(JdbcDatasource.java:389)
at java.util.Optional.map(Optional.java:215)
at com.atlassian.jira.config.database.JdbcDatasource.parse(JdbcDatasource.java:389)
at com.atlassian.jira.config.database.DatabaseConfigHandler.parseDatasource(DatabaseConfigHandler.java:62)
at com.atlassian.jira.config.database.DatabaseConfigHandler.parse(DatabaseConfigHandler.java:33)
at com.atlassian.jira.config.database.AbstractJiraHomeDatabaseConfigurationLoader.loadDatabaseConfiguration(AbstractJiraHomeDatabaseConfigurationLoader.java:51)
at com.atlassian.jira.instrumentation.external.DatabaseExternalGauges.createInstruments(DatabaseExternalGauges.java:71)
at com.atlassian.jira.instrumentation.external.DatabaseExternalGauges.installInstruments(DatabaseExternalGauges.java:56)
at com.atlassian.jira.instrumentation.external.ExternalGauges.installInstruments(ExternalGauges.java:29)
at com.atlassian.jira.instrumentation.Instrumentation.start(Instrumentation.java:151)
at com.atlassian.jira.component.pico.ComponentManager.startStartableComponents(ComponentManager.java:335)
at com.atlassian.jira.component.pico.ComponentManager.earlyStartPluginSystem(ComponentManager.java:252)
at com.atlassian.jira.startup.BootstrapContainerLauncher.bootstrapJIRAWhenDBIsNotSetup(BootstrapContainerLauncher.java:76)
at com.atlassian.jira.startup.BootstrapContainerLauncher.start(BootstrapContainerLauncher.java:43)
at com.atlassian.jira.startup.DefaultJiraLauncher.preDbLaunch(DefaultJiraLauncher.java:117)
at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$start$0(DefaultJiraLauncher.java:103)
at com.atlassian.jira.util.devspeed.JiraDevSpeedTimer.run(JiraDevSpeedTimer.java:31)
at com.atlassian.jira.startup.DefaultJiraLauncher.start(DefaultJiraLauncher.java:102)
at com.atlassian.jira.startup.LauncherContextListener.initSlowStuff(LauncherContextListener.java:154)
at java.lang.Thread.run(Thread.java:750)
2023-07-04 08:45:57,826+0200 JIRA-Bootstrap ERROR [c.a.d.c.p.ciphers.algorithm.AlgorithmCipher] Runtime Exception thrown when decrypting: DecryptionParameters
{sealedObjectFilePath='javax.crypto.SealedObject_1680173326866', keyFilePath='javax.crypto.spec.SecretKeySpec_1680173326822'}
java.lang.RuntimeException: java.io.FileNotFoundException: javax.crypto.SealedObject_1680173326866 (No such file or directory)
at com.atlassian.db.config.password.ciphers.algorithm.serialization.SerializationFile.read(SerializationFile.java:39)
at com.atlassian.db.config.password.ciphers.algorithm.AlgorithmCipher.decrypt(AlgorithmCipher.java:141)
Cause
The admins run the command below on one of the clusters to stop/start Jira on the other nodes:
pbrun -h <JiraHostname> -c /bin/su - OS_user /JIRA_INSTALL/bin/start-jira.sh
But it fails with the error above. If the admins try to run the same command on the nodes instead of executing remotely, it works.
Resolution
Some environments expect the user to change the directory first, and then run the command:
pbrun -h <JiraHostname> -c /bin/su - OS_user "cd /JIRA_INSTALL/bin;./start-jira.sh"