スペースを削除できない
症状
スペースを削除しようとするとエラーになる。以下のいずれかがログに表示される。
- constraint violation
- NullPointerException
- org.springframework.dao.DataIntegrityViolationException
診断
データベースに無効なエントリまたは外部キー関係があります。エラーから受け取ったスタック トレースを調べてください。対応する解決策については、以下を参照してください。
原因とソリューション
org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result
There are duplicate labels in the database. This issue is tracked in CONFSERVER-5254 - Duplicate labels can be created by Concurrency Requests.
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not delete com.atlassian.confluence.pages.templates.PageTemplate
This issue is tracked in CONFSERVER-19490 - Removing Space with multiple Page Templates and multiple page templates versions will fail with Foreign Key Contraints. It was resolved in Confluence 3.3. Please see the bug report for the workaround if you are on 3.3 or before.
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not delete com.atlassian.confluence.pages.Attachment
This issue is tracked in CONFSERVER-19611 - Unable to remove a space - gives a DataIntegrityViolationException. It was resolved in Confluence 4.1.2. Please see the bug report for the workaround if you are on 4.1.2 or before.
さらにヘルプが必要な場合
UI からスペースにまったくアクセスできない場合は、URL http:///spaces/removespace.action?key=<スペース キーを挿入> で直接削除を実行できます。それでもうまくいかない場合は、スペースの手動削除に関するドキュメントを参照してください。
簡単な回避策
- 最初にスペースのゴミ箱を消去してから、もう一度スペースを削除してみてください。
- アプリケーションのログまたは UI から、スペース削除の操作中に特定のページで問題が発生したことがわかる場合は、ページを別のスペースに移動/コピーしてから、問題となっているスペースの削除を試みてください。
それでも問題が解決しない場合は、問題の原因についてもう少し詳しく調べる必要がある場合があります。
- テスト用インスタンスで問題を再現できる場合は、本番環境で試す前にそこで次の手順を実行します。
- Confluence をシャットダウンします。
- パラメータありでの SQL ログ出力を有効にします。
- Confluence を再起動しスペース削除を試行します。エラーが再現されます。
- atlassian-confluence.log を確認します。原因となるスペースと問題のあるデータベース行がわかります。
- どの行を削除すべきか分からない場合は、サポート チケットを作成し、詳細なログを添付してお問い合わせください。