Start a conversation

Performing a Clean Context Search Index Rebuild After an Upgrade or to Resolve an Issue With Search

Overview

The search function does not work when you try to search. Search will not return results for content, places, or groups. You may have already tried a search index rebuild, but it did not resolve your issue. You may have also found the following error message in the log files:

Caused by: com.jivesoftware.service.search.api.lucene.index.manager.indexmanagerapi.
IndexMangerServiceException: org.apache.lucene.store.LockObtainFailedException:
Lock obtain timed out: NativeFSLock@/usr/local/jive/services/search-service/var/data/
contentSearch/contentSwappingSearch/********-****-****-****-************/
dedupIndex-12345678912345/write.lock

Prerequisites

  • This applies to Jive On-Premise installations of all versions.

Solution

Fixing a problem that affects the search index usually means that another content search index rebuild is necessary.

The main issue is that the On-Premise search has a "resume" feature (which is enabled by default) and will save the state of the search index rebuild in the binstore, to pick up where it left off in the event of a restart. 

This feature can cause the Search to generate variable results if not accounted for during or after an upgrade.

The same scenario might also happen in other corner cases, in which the search rebuild keeps starting from a previously saved status.

This procedure is NOT necessary for every search index rebuild, but if the rebuild did not complete (for some reason), this would be the process to utilize. You can also query the tables below to get more information.

These steps are required after each dry run search index rebuilds to ensure a clean rebuild.

  1. Stop the Search service:
    • jive stop search

  2. Delete the search index:
    • rm -rf ~/services/search-service/var
      OR
      mv ~/services/search/var/* [BACKUP_LOCATION]
  3. Ensure the resume feature is disabled:
    • Set the system property search.resume.rebuildIndex to false (true is the default value).

      Check that this variable is not already set before doing the INSERT.

      INSERT INTO jiveproperty VALUES('search.resume.rebuildIndex','false');
    • Delete these properties (if present):
      search.rebuildIndex (defaults to false), search.rebuild.progress.1, and search.rebuild.progress.2:
      DELETE FROM jiveproperty WHERE name IN('search.rebuildIndex','search.rebuild.progress.1','search.rebuild.progress.2');
  4. Perform a full application restart:
    • Run jive restart on the webapp node.

  5. Start the Search service:
    • Run jive restart on the search node.

  6. Initiate the rebuild by clicking the "Rebuild Index" button in the admin console.
    • Note: clicking that button will set search.rebuildIndex = true.

 

Back to top

Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. Priyanka Bhotika

  2. Posted

Comments