-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
High
-
None
-
Affects Version/s: 11.3.10, 11.3.11
-
Component/s: OpenSearch
-
None
-
11.03
-
1
-
Severity 3 - Minor
Issue Summary
When migrating from Lucene to OpenSearch for Jira DC and using the zero downtime approach, the OpenSearch node skips Lucene index updates made by other nodes which have not changed to use OpenSearch.
Steps to Reproduce
- Deploy a two-node Jira cluster
- Configure one node to use OpenSearch
- Add the dark feature flag com.atlassian.jira.migrate.lucene.to.opensearch.enabled as described in Migrating to OpenSearch without downtime
- Perform a reindex from the OpenSearch Jira node
- Update an issue on the Lucene node, e.g., change an issue summary to foo
- Wait ~60 seconds for the update to replicate
Expected Results
Run a JQL search (summary ~ "foo") on the OpenSearch node and observe that the update appears in the search results.
Actual Results
- No issue is returned for the JQL search.
- The below exception (or similar) is thrown in the atlassian-jira.log file:
2026-08-25 16:25:31,651+0000 NodeReindexServiceThread:thread-0 ERROR [c.a.j.index.ha.DefaultNodeReindexService] [INDEX-REPLAY] Error re-indexing node changes
java.lang.RuntimeException: Failed to update index for ([ReplicatedIndexOperation{indexTime=2026-08-25 16:25:16.965561, id=10200, nodeId='jira_node2', affectedIdToVersion={}, operation=FULL_REINDEX_START, affectedIndex=ALL, entityType=NONE, backupFilename=', documentType='null'}, ReplicatedIndexOperation{indexTime=2026-08-25 16:25:18.740533, id=10201, nodeId='jira_node2', affectedIdToVersion={}, operation=FULL_REINDEX_END, affectedIndex=ALL, entityType=NONE, backupFilename='IndexSnapshot_10001_260825-162518.tar.sz, documentType='null'}])
at com.atlassian.jira.index.ha.DefaultNodeReindexService.applyIndexOperations(DefaultNodeReindexService.java:481)
at com.atlassian.jira.index.ha.DefaultNodeReindexService.lambda$reIndex$1(DefaultNodeReindexService.java:416)
at com.atlassian.jira.index.QueueingIndexPriority.runWithIndexingPriority(QueueingIndexPriority.java:24)
at com.atlassian.jira.index.ha.DefaultNodeReindexService.reIndex(DefaultNodeReindexService.java:415)
at com.atlassian.jira.util.thread.JiraThreadLocalUtils.lambda$wrap$1(JiraThreadLocalUtils.java:156)
at com.atlassian.jira.util.concurrent.ScheduledExecutorServiceUtils$1.run(ScheduledExecutorServiceUtils.java:43)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.UnsupportedOperationException: withReindexLock is not supported for OpenSearch as there is no reindex lock.
at com.atlassian.jira.search.opensearch.OpenSearchJiraIndexManager.withReindexLock(OpenSearchJiraIndexManager.java:193)
at com.atlassian.jira.index.ha.DefaultIndexRecoveryManager.recoverIndexFromBackup(DefaultIndexRecoveryManager.java:228)
at com.atlassian.jira.index.ha.DefaultIndexCopyService$MessageConsumer.restoreIndex(DefaultIndexCopyService.java:193)
at com.atlassian.jira.index.ha.DefaultIndexCopyService.restoreIndex(DefaultIndexCopyService.java:76)
at com.atlassian.jira.index.ha.DefaultNodeReindexService.handleFullReindexOperation(DefaultNodeReindexService.java:538)
at com.atlassian.jira.index.ha.DefaultNodeReindexService.updateAffectedIndexes(DefaultNodeReindexService.java:580)
at com.atlassian.jira.index.ha.DefaultNodeReindexService.applyIndexOperations(DefaultNodeReindexService.java:478)
... 11 more
Workaround
There is no known workaround. Updating -Djira.cache.replication.localq.put.ttl.seconds=315360000 on the OpenSearch node removes the exception, but it does not resolve the issue of skipped index operations from Lucene nodes.