Readonly H2 DB While running atlas-debug

Hi

I’m trying to run a basic hello world plugin on an Ubuntu 20.04 machine, as per the instructions here

https://developer.atlassian.com/server/framework/atlassian-sdk/create-a-helloworld-plugin-project/

However if I try to use the default embedded H2 DB I’m getting an exception while running

atlas-debug --version 7.14.0

[INFO] [talledLocalContainer] 2021-10-27 00:34:35,919 ERROR [main] [atlassian.confluence.setup.ConfluenceConfigurationListener] contextInitialized An error was encountered while bootstrapping Confluence (see below):
[INFO] [talledLocalContainer] Cannot connect to h2db.
[INFO] [talledLocalContainer] com.atlassian.h2.H2QueryFailedException: Cannot connect to h2db.
[INFO] [talledLocalContainer] at com.atlassian.h2.DatabaseCreatingServerLifecycle.runSimpleSelectOnH2(DatabaseCreatingServerLifecycle.java:80)
[INFO] [talledLocalContainer] at com.atlassian.h2.DatabaseCreatingServerLifecycle.validateH2DBIfExists(DatabaseCreatingServerLifecycle.java:65)
[INFO] [talledLocalContainer] at com.atlassian.h2.DatabaseCreatingServerLifecycle.start(DatabaseCreatingServerLifecycle.java:53)
[INFO] [talledLocalContainer] at com.atlassian.confluence.core.persistence.hibernate.ConfluenceHibernateConfig.getHibernateProperties(ConfluenceHibernateConfig.java:58)
[INFO] [talledLocalContainer] at com.atlassian.confluence.impl.setup.DefaultBootstrapDatabaseAccessor.getBootstrapData(DefaultBootstrapDatabaseAccessor.java:46)
[INFO] [talledLocalContainer] at com.atlassian.confluence.setup.DefaultBootstrapManager.afterConfigurationLoaded(DefaultBootstrapManager.java:812)
[INFO] [talledLocalContainer] at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:69)
[INFO] [talledLocalContainer] at com.atlassian.confluence.setup.DefaultBootstrapManager.init(DefaultBootstrapManager.java:193)
[INFO] [talledLocalContainer] at com.atlassian.config.util.BootstrapUtils.init(BootstrapUtils.java:34)
[INFO] [talledLocalContainer] at com.atlassian.confluence.setup.ConfluenceConfigurationListener.initialiseBootstrapContext(ConfluenceConfigurationListener.java:144)
[INFO] [talledLocalContainer] at com.atlassian.confluence.setup.ConfluenceConfigurationListener.contextInitialized(ConfluenceConfigurationListener.java:63)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4716)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5172)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1023)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1903)
[INFO] [talledLocalContainer] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[INFO] [talledLocalContainer] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
[INFO] [talledLocalContainer] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:824)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1611)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:843)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
[INFO] [talledLocalContainer] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
[INFO] [talledLocalContainer] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
[INFO] [talledLocalContainer] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
[INFO] [talledLocalContainer] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
[INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[INFO] [talledLocalContainer] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:498)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
[INFO] [talledLocalContainer] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
[INFO] [talledLocalContainer] Caused by: org.h2.jdbc.JdbcSQLNonTransientException: General error: “java.lang.IllegalStateException: This store is read-only [1.4.200/2]” [50000-200]
[INFO] [talledLocalContainer] at org.h2.message.DbException.getJdbcSQLException(DbException.java:505)
[INFO] [talledLocalContainer] at org.h2.message.DbException.getJdbcSQLException(DbException.java:429)
[INFO] [talledLocalContainer] at org.h2.message.DbException.get(DbException.java:194)
[INFO] [talledLocalContainer] at org.h2.message.DbException.convert(DbException.java:347)
[INFO] [talledLocalContainer] at org.h2.engine.Database.openDatabase(Database.java:333)
[INFO] [talledLocalContainer] at org.h2.engine.Database.(Database.java:301)
[INFO] [talledLocalContainer] at org.h2.engine.Engine.openSession(Engine.java:74)
[INFO] [talledLocalContainer] at org.h2.engine.Engine.openSession(Engine.java:192)
[INFO] [talledLocalContainer] at org.h2.engine.Engine.createSessionAndValidate(Engine.java:171)
[INFO] [talledLocalContainer] at org.h2.engine.Engine.createSession(Engine.java:166)
[INFO] [talledLocalContainer] at org.h2.engine.Engine.createSession(Engine.java:29)
[INFO] [talledLocalContainer] at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340)
[INFO] [talledLocalContainer] at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:173)
[INFO] [talledLocalContainer] at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:152)
[INFO] [talledLocalContainer] at org.h2.Driver.connect(Driver.java:69)
[INFO] [talledLocalContainer] at java.sql.DriverManager.getConnection(DriverManager.java:664)
[INFO] [talledLocalContainer] at java.sql.DriverManager.getConnection(DriverManager.java:247)
[INFO] [talledLocalContainer] at com.atlassian.h2.DatabaseCreatingServerLifecycle.runSimpleSelectOnH2(DatabaseCreatingServerLifecycle.java:75)
[INFO] [talledLocalContainer] … 51 more
[INFO] [talledLocalContainer] Caused by: java.lang.IllegalStateException: This store is read-only [1.4.200/2]
[INFO] [talledLocalContainer] at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950)
[INFO] [talledLocalContainer] at org.h2.mvstore.MVStore.store(MVStore.java:1330)
[INFO] [talledLocalContainer] at org.h2.mvstore.MVStore.store(MVStore.java:1312)
[INFO] [talledLocalContainer] at org.h2.mvstore.MVStore.tryCommit(MVStore.java:1272)
[INFO] [talledLocalContainer] at org.h2.mvstore.tx.TransactionStore.endTransaction(TransactionStore.java:588)
[INFO] [talledLocalContainer] at org.h2.mvstore.tx.Transaction.commit(Transaction.java:592)
[INFO] [talledLocalContainer] at org.h2.engine.Session.commit(Session.java:714)
[INFO] [talledLocalContainer] at org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:100)
[INFO] [talledLocalContainer] at org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:78)
[INFO] [talledLocalContainer] at org.h2.engine.MetaRecord.execute(MetaRecord.java:60)
[INFO] [talledLocalContainer] at org.h2.engine.Database.open(Database.java:759)
[INFO] [talledLocalContainer] at org.h2.engine.Database.openDatabase(Database.java:307)
[INFO] [talledLocalContainer] … 64 more

The SDK version is:

ATLAS Version: 8.2.8
ATLAS Home: /usr/share/atlassian-plugin-sdk-8.2.8
ATLAS Scripts: /usr/share/atlassian-plugin-sdk-8.2.8/bin
ATLAS Maven Home: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4
AMPS Version: 8.1.2

Executing: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/bin/mvn --version -gs /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/conf/settings.xml
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)
Maven home: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4
Java version: 1.8.0_281, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk1.8.0_281/jre
Default locale: en_US, platform encoding: UTF-8
OS name: “linux”, version: “5.4.0-1036-gcp”, arch: “amd64”, family: “unix”

If I delete the confluence.cfg.xml file inside the plugins home directory (target/confluence/home) and I’m able to successfully able to configure a PostgresSQL DB and the confluence runs without any issues.

Could you please provide some insights. Thank you.

Kind Regards
Benny Jacob

Hi

Please note , I just realised that this query should have been posted in the Atlassian Developer Tools category. Kindly ignore this query here, I’ve created a new entry in the Atlassian Developer Tools category. I apologise for the inconvenience caused.

Kind Regards
Benny Jacob