Lexorank Integrity Healthcheck Fails Due To "BUCKET" Column
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
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 は除く
問題
Lexorank Integrity healthcheck fails even though the minimum and maximum markers are present and are correct in the database.
Minimum/Maximum markers are present in database and there are no duplicates.
診断
環境
- Known to affect JIRA Software 7.1.x
- The data might have been previously imported from JIRA Cloud, or from a newer version of JIRA Server, ie 7.2.x.
Diagnostic Steps
atlassian-jira.log throws the following lexorank error
2016-10-27 20:47:16,978 http-nio-8080-exec-9 ERROR admin 1247x833x1 16ebkcn 00.000.000.000 /secure/QuickCreateIssue.jspa [c.a.g.service.lexorank.LexoRankIssueEventListener] Expected the first rank row to be of type MAXIMUM_MARKER_ROW. Found row[LexoRankRow{id=10000, fieldId=0, issueId=8, lockHash='9223372036854775807', lockTime=null, rank='null', type=MINIMUM_MARKER_ROW}] com.atlassian.greenhopper.manager.lexorank.LexoRankIntegrityException: Expected the first rank row to be of type MAXIMUM_MARKER_ROW. Found row[LexoRankRow{id=10000, fieldId=0, issueId=8, lockHash='9223372036854775807', lockTime=null, rank='null', type=MINIMUM_MARKER_ROW}] at com.atlassian.greenhopper.manager.lexorank.LexoRankDaoImpl.getMaximumMarkerRowAndPreviousRow(LexoRankDaoImpl.java:373) at com.atlassian.greenhopper.service.lexorank.LexoRankOperation.rankInitially(LexoRankOperation.java:167) at com.atlassian.greenhopper.service.lexorank.LexoRankOperation.execute(LexoRankOperation.java:110) at com.atlassian.greenhopper.manager.lexorank.LexoRankManagerImpl.performRankOperation(LexoRankManagerImpl.java:286) at com.atlassian.greenhopper.manager.lexorank.LexoRankManagerImpl.getRankOrRankInitially(LexoRankManagerImpl.java:86) at com.atlassian.greenhopper.service.lexorank.LexoRankIssueEventListener.doOnIssueEvent(LexoRankIssueEventListener.java:43) at com.atlassian.greenhopper.service.issue.AbstractIssueEventListener.onIssueEvent(AbstractIssueEventListener.java:38) ... 2 filtered
- Notice the values of the columns (in the error message) are not referring to the actual value shown in the database query output screenshot above: id, fieldId, issueId, lockHash, lockTime, rank and type.
- Maximum and minimum marker values are correct in database and there are no duplicates.
原因
The problem is caused by a column named "BUCKET" that is not supposed to exist in JIRA 7.1.x. - JSW-15128Getting issue details... STATUS
回避策
Remove the "BUCKET" column.
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
- Create a database backup first
- Jira を停止します。
Run the following SQL statement on the JIRA database:
ALTER TABLE "AO_60DB71_LEXORANK" DROP COLUMN "BUCKET";
- Jira を起動します。
- Re-run the lexorank integrity check once more