Skip to content

Commit 2f09fb6

Browse files
authored
Preserve thread context when waiting for segment generation in RTG (#114623)
Closes ES-9778
1 parent 2af19d8 commit 2f09fb6

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

docs/changelog/114623.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 114623
2+
summary: Preserve thread context when waiting for segment generation in RTG
3+
area: CRUD
4+
type: bug
5+
issues: []

server/src/main/java/org/elasticsearch/action/get/TransportGetAction.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.elasticsearch.action.NoShardAvailableActionException;
2121
import org.elasticsearch.action.admin.indices.refresh.TransportShardRefreshAction;
2222
import org.elasticsearch.action.support.ActionFilters;
23+
import org.elasticsearch.action.support.ContextPreservingActionListener;
2324
import org.elasticsearch.action.support.replication.BasicReplicationRequest;
2425
import org.elasticsearch.action.support.single.shard.TransportSingleShardAction;
2526
import org.elasticsearch.client.internal.node.NodeClient;
@@ -284,11 +285,11 @@ private void tryGetFromTranslog(GetRequest request, IndexShard indexShard, Disco
284285
} else {
285286
assert r.segmentGeneration() > -1L;
286287
assert r.primaryTerm() > Engine.UNKNOWN_PRIMARY_TERM;
287-
indexShard.waitForPrimaryTermAndGeneration(
288-
r.primaryTerm(),
289-
r.segmentGeneration(),
290-
listener.delegateFailureAndWrap((ll, aLong) -> super.asyncShardOperation(request, shardId, ll))
288+
final ActionListener<Long> termAndGenerationListener = ContextPreservingActionListener.wrapPreservingContext(
289+
listener.delegateFailureAndWrap((ll, aLong) -> super.asyncShardOperation(request, shardId, ll)),
290+
threadPool.getThreadContext()
291291
);
292+
indexShard.waitForPrimaryTermAndGeneration(r.primaryTerm(), r.segmentGeneration(), termAndGenerationListener);
292293
}
293294
}
294295
}), TransportGetFromTranslogAction.Response::new, getExecutor(request, shardId))

0 commit comments

Comments
 (0)