Content Indexing ページを表示すると、ArithmeticException または NullPointerException が発生する

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.

Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. 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.

*Fisheye および Crucible は除く

問題

Confluence バージョン 7.7 以上において、Confluence 管理者が Content Indexing ページから検索インデックスを再構築しようとすると、次のエラー メッセージが表示される。 

We can't check the status of your index. You may have lost your connection. Refresh the page to try again.

これによりインデックスの再構築プロセスを開始することができない。


Arithmetic Exception:
以下のエラーも atlassian-confluence.log に表示される。

2021-11-02 17:09:48,955 ERROR [http-nio-8090-exec-1] [common.error.jersey.ThrowableExceptionMapper] toResponse Uncaught exception thrown by REST service: / by zero
 -- referer: https://localhost:8090/plugins/servlet/rebuildindex | url: /rest/rebuildindex/latest/job | traceId: 8a8faee1f9816055 | userName: admin1
java.lang.ArithmeticException: / by zero
	at com.atlassian.confluence.plugins.rebuildindex.status.ReIndexJobJson.<init>(ReIndexJobJson.java:65)
	at com.atlassian.confluence.plugins.rebuildindex.rest.ReIndexJobResource.lambda$getMostRecentOrRunning$0(ReIndexJobResource.java:46)
	at java.base/java.util.Optional.map(Unknown Source)
	at com.atlassian.confluence.plugins.rebuildindex.rest.ReIndexJobResource.getMostRecentOrRunning(ReIndexJobResource.java:45)
...

NullPointer Exception

また、atlassian-confluence.log に次のエラーも表示されます。

2023-07-11 09:23:05,060 ERROR [https-jsse-nio-8443-exec-10] [common.error.jersey.ThrowableExceptionMapper] toResponse Uncaught exception e1dd1bae-b6ac-41e5-957b-2e088f83092a thrown by REST service: null
 -- url: /rest/rebuildindex/latest/job | userName: admin | referer: https://localhost:8090/plugins/servlet/rebuildindex | traceId: 91743b933cac0450
java.lang.NullPointerException
    at com.atlassian.confluence.plugins.rebuildindex.status.ReIndexNodeStatusJson.<init>(ReIndexNodeStatusJson.java:33)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
...


診断

By design, Confluence would then invoke the endpoint <Confluence-Base-URL>/plugins/servlet/rebuildindex when loading up the Content Indexing page. This is to check what's the current status of the reindex for this Confluence cluster, in which is being stored in the BANDANA table. 

補足情報

次の SQL クエリを実行して、Confluence クラスターの再インデックスのステータスを確認できます。

SELECT * FROM BANDANA WHERE BANDANAKEY='reindex.status'
返される結果のサンプル
testdb=> SELECT * FROM BANDANA WHERE BANDANAKEY='reindex.status';
 bandanaid | bandanacontext |   bandanakey   |                                bandanavalue                                
-----------+----------------+----------------+----------------------------------------------------------------------------
 796164098 | _GLOBAL        | reindex.status | <com.atlassian.confluence.index.status.ReIndexJob>                        +
           |                |                |   <id>cb5f35bf-db0b-4532-8c27-228b72c2e515</id>                           +
           |                |                |   <startTime>2021-10-06T14:54:15.400125Z</startTime>                      +
           |                |                |   <stage>PROPAGATING</stage>                                              +
           |                |                |   <acknowledged>false</acknowledged>                                      +
           |                |                |   <rebuildingProgress>                                                    +
           |                |                |     <total>3301489</total>                                                +
           |                |                |     <processed>3301489</processed>                                        +
           |                |                |   </rebuildingProgress>                                                   +
           |                |                |   <lastRebuildingUpdate>2021-10-06T18:57:51.842634Z</lastRebuildingUpdate>+
           |                |                |   <propagatingProgress>                                                   +
           |                |                |     <total>0</total>                                                      +
           |                |                |     <processed>8</processed>                                              +
           |                |                |   </propagatingProgress>                                                  +
           |                |                |   <nodeStatuses class="list">                                             +
           |                |                |     <com.atlassian.confluence.index.status.ReIndexNodeStatus>             +
           |                |                |       <nodeId>d64ead2c</nodeId>                                           +
           |                |                |       <state>REBUILD_COMPLETE</state>                                     +
           |                |                |     </com.atlassian.confluence.index.status.ReIndexNodeStatus>            +
           |                |                |     <com.atlassian.confluence.index.status.ReIndexNodeStatus>             +
           |                |                |       <nodeId>d64ec2ba</nodeId>                                           +
           |                |                |       <state>PROPAGATION_COMPLETE</state>                                 +
           |                |                |     </com.atlassian.confluence.index.status.ReIndexNodeStatus>            +
           |                |                |     <com.atlassian.confluence.index.status.ReIndexNodeStatus>             +
           |                |                |       <nodeId>d64eb777</nodeId>                                           +
           |                |                |       <state>PROPAGATION_COMPLETE</state>                                 +
           |                |                |     </com.atlassian.confluence.index.status.ReIndexNodeStatus>            +
           |                |                |     <com.atlassian.confluence.index.status.ReIndexNodeStatus>             +
           |                |                |       <nodeId>d64e9fda</nodeId>                                           +
           |                |                |       <state>PROPAGATION_COMPLETE</state>                                 +
           |                |                |     </com.atlassian.confluence.index.status.ReIndexNodeStatus>            +
           |                |                |     <com.atlassian.confluence.index.status.ReIndexNodeStatus>             +
           |                |                |       <nodeId>d64ea73d</nodeId>                                           +
           |                |                |       <state>PROPAGATION_COMPLETE</state>                                 +
           |                |                |     </com.atlassian.confluence.index.status.ReIndexNodeStatus>            +
           |                |                |   </nodeStatuses>                                                         +
           |                |                | </com.atlassian.confluence.index.status.ReIndexJob>
(1 row)

原因

この場合、(データベース内の) 再インデックス プロセスのステータスが不適切に保存されています。つまり、propagatingProgress の合計が 0 であるにもかかわらず、進行中のインデックス伝播プロセス (<stage>PROPAGATING</stage>) があると識別されています。
このため、Confluence が再インデックスの進捗を計算しようとすると算術例外が発生します。

回避策

ここで、この問題を回避するには、BANDANA テーブルの再インデックスのステータスをリセットする必要があります。これを行うには、以下の手順を実行します。

  1. Confluence クラスターをスケール ダウンして、1 つのノードだけを稼働させます 。
  2. このノードを停止します
  3. このノードのローカル ホームにある <Confluence-Home>/journal および <Confluence-Home>/index フォルダを削除します
  4. <Shared-Home>/index-snapshots フォルダから既存のインデックスのスナップショットをすべて削除します  
  5. 以下のSQLクエリを実行して、BANDANA テーブルから reindex.state とインデックス伝播ステータスのレコードを削除します。

    データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。

    DELETE FROM BANDANA WHERE BANDANAKEY='reindex.status';
  6. Start Confluence again

  7. Once Confluence is up, the reindex should start automatically within a few minutes and progress can be monitored from atlassian-confluence-index.log. If reindex doesn't start automatically, then, please access Confluence Indexing page and re-trigger the index rebuild.
    (info) The reindex.state record in the BANDANA table would be repopulated once the reindex is finished.


説明
製品

最終更新日 2024 年 5 月 30 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.