Uploaded image for project: 'Hippo Repository'
  1. Hippo Repository
  2. REPO-1653

[Backport jackrabbit- 2.10.1-h15] New cluster node can fail to startup after indexing has been done

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2.1, jackrabbit-2.10.1-h15
    • Labels:
      None
    • Similar issues:
    • Processed by team:
      Turing
    • Sprint:
      Turing Sprint 153

      Description

      After indexing has finished, repository can fail to start up with

      Caused by: java.lang.IllegalStateException: Required start revision '23415906' does NOT exist any more in the Journal table (oldest journal table record has revision '23415907') implying the index can be correctly updated. Remove the index and restart to trigger a complete new index built or provide a newer index export.
          at org.apache.jackrabbit.core.query.lucene.SearchIndex.undoAdded(SearchIndex.java:2635)
          at org.apache.jackrabbit.core.query.lucene.SearchIndex.checkPendingJournalChanges(SearchIndex.java:2626)
          at org.apache.jackrabbit.core.query.lucene.SearchIndex.doInit(SearchIndex.java:598)
          at org.hippoecm.repository.FacetedNavigationEngineImpl.doInit(FacetedNavigationEngineImpl.java:650)
      

      Apparently, from

      org.apache.jackrabbit.core.query.lucene.SearchIndex#getChangeLogRecords
      

      we can get that the first returned change record is one higher than expected. This is most likely cause by

      r.process(collector);
      

      where the collector skips a record (r) that is not a workspace record (for example new nodetype registration)

      1) Instead of checking the org.apache.jackrabbit.core.cluster.ClusterRecord#getRevision we'll check on the database record before possible skip has been done, thus on

      records = journal.getRecords(fromRevision);
                  while (records.hasNext())
      

      2) The old style JR indexing we log an error instead of throwing a runtime exception

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                aschrijvers Ard Schrijvers
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: