Lexorank Integrity Healthcheck Fails Due To "BUCKET" Column

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

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.

*Except Fisheye and Crucible

Problem

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.

Diagnosis

Environment

  • 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.

Cause

The problem is caused by a column named "BUCKET" that is not supposed to exist in JIRA 7.1.x.  JSW-15128 - Getting issue details... STATUS

Workaround

Remove the "BUCKET" column.

Always back up your data before performing any modifications to the database. If possible, test any alter, insert, update, or delete SQL commands on a staging server first.

  1. Create a database backup first
  2. Stop JIRA
  3. Run the following SQL statement on the JIRA database:

    ALTER TABLE "AO_60DB71_LEXORANK" DROP COLUMN "BUCKET";
  4. Start JIRA
  5. Re-run the lexorank integrity check once more

 

 

Last modified on Mar 23, 2017

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.