Confluence のアップグレードが 「liquibase.exception.LockException: Could not acquire change log lock」エラーで失敗する
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
問題
Confluence 6.14 以上へのアップグレードに失敗し、atlassian-confluence.log
に以下のエラーが表示される。
2019-04-01 12:45:19,509 ERROR \[Caesium-1-2] \[migration.agent.queue.QueueBroker] error An error occurred when getting the next batch for consumer type: CONFLUENCE_IMPORT. Message: javax.persistence.PersistenceException: Failed to update database schema
com.atlassian.util.concurrent.LazyReference$InitializationException: javax.persistence.PersistenceException: Failed to update database schema
at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149\)
at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112\)
at com.atlassian.migration.agent.store.jpa.impl.DefaultSessionFactorySupplier.get(DefaultSessionFactorySupplier.java:57\)
at com.atlassian.migration.agent.store.jpa.impl.DefaultSessionFactorySupplier.get(DefaultSessionFactorySupplier.java:36\)
at com.atlassian.migration.agent.store.jpa.impl.DefaultPluginTransactionTemplate.on(DefaultPluginTransactionTemplate.java:33\)
at com.atlassian.migration.agent.store.tx.PluginTransactionTemplate.write(PluginTransactionTemplate.java:26\)
at com.atlassian.migration.agent.queue.QueueBroker.getNextBatch(QueueBroker.java:119\)
...
at java.util.ArrayList.forEach(ArrayList.java:1257\)
at com.atlassian.migration.agent.queue.QueueBroker.runJob(QueueBroker.java:100\)
at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.doRunJob(JobRunnerWrapper.java:117\)
...
Caused by: javax.persistence.PersistenceException: Failed to update database schema
at com.atlassian.migration.agent.store.jpa.impl.LiquibaseSchemaUpgrader.upgrade(LiquibaseSchemaUpgrader.java:35\)
at com.atlassian.migration.agent.store.jpa.impl.DefaultSessionFactorySupplier.buildSessionFactory(DefaultSessionFactorySupplier.java:62\)
...
at com.atlassian.migration.agent.store.jpa.impl.DefaultSessionFactorySupplier.get(DefaultSessionFactorySupplier.java:57\)
at com.atlassian.migration.agent.store.jpa.impl.DefaultSessionFactorySupplier.get(DefaultSessionFactorySupplier.java:36\)
at com.atlassian.migration.agent.store.jpa.impl.DefaultPluginTransactionTemplate.on(DefaultPluginTransactionTemplate.java:33\)
at com.atlassian.migration.agent.store.tx.PluginTransactionTemplate.read(PluginTransactionTemplate.java:18\)
at com.atlassian.migration.agent.service.impl.DefaultStatisticsService.calculateServerStats(DefaultStatisticsService.java:132\)
at com.atlassian.migration.agent.service.impl.SingleJobExecutor.lambda$execute$0(SingleJobExecutor.java:28\)
...
Caused by: liquibase.exception.LockException: Could not acquire change log lock. Currently locked by <DatabaseServer> \(<DatabaseServerIP>\) since 04.02.19 20:03
at liquibase.lockservice.StandardLockService.waitForLock(StandardLockService.java:230\)
at liquibase.Liquibase.update(Liquibase.java:184\)
at liquibase.Liquibase.update(Liquibase.java:179\)
at com.atlassian.migration.agent.store.jpa.impl.LiquibaseSchemaUpgrader.upgrade(LiquibaseSchemaUpgrader.java:30\)
原因
この問題は MIG_DB_CHANGELOG_LOCK
テーブルがリリース ロック情報で更新されておらず、アップグレード後にデータベース スキーマを移行しようとしている間に Confluence が強制終了したことが原因と考えられます。
The
MIG_DB_CHANGELOG_LOCK
table is related to the Cloud Migration Assistant for Confluence plugin which is bundled by default since Confluence 6.14.
回避策
この問題を解決するには、以下の回避策のいずれかを選択してください。
Confluence データベースで以下の SQL クエリを実行して、手動でロックを解除します。
それ以外にも、Confluence インスタンスで Cloud Migration Assistant for Confluence を無効にすることで回避することもできます。