Skip to content

Commit ab20827

Browse files
committed
fix connector executor: restore context
Signed-off-by: Yaliang Wu <ylwu@amazon.com>
1 parent c243f8a commit ab20827

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/AwsConnectorExecutor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.apache.logging.log4j.Logger;
2525
import org.opensearch.common.collect.Tuple;
2626
import org.opensearch.common.util.TokenBucket;
27+
import org.opensearch.common.util.concurrent.ThreadContext;
2728
import org.opensearch.core.action.ActionListener;
2829
import org.opensearch.ml.common.connector.AwsConnector;
2930
import org.opensearch.ml.common.connector.Connector;
@@ -115,14 +116,15 @@ public void invokeRemoteService(
115116
default:
116117
throw new IllegalArgumentException("unsupported http method");
117118
}
119+
ThreadContext.StoredContext storedContext = client.threadPool().getThreadContext().newStoredContext(true);
118120
AsyncExecuteRequest executeRequest = AsyncExecuteRequest
119121
.builder()
120122
.request(signRequest(request))
121123
.requestContentPublisher(new SimpleHttpContentPublisher(request))
122124
.responseHandler(
123125
new MLSdkAsyncHttpResponseHandler(
124126
executionContext,
125-
actionListener,
127+
ActionListener.runBefore(actionListener, storedContext::restore),
126128
parameters,
127129
connector,
128130
scriptService,

ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/remote/HttpJsonConnectorExecutor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.apache.logging.log4j.Logger;
2424
import org.opensearch.common.collect.Tuple;
2525
import org.opensearch.common.util.TokenBucket;
26+
import org.opensearch.common.util.concurrent.ThreadContext;
2627
import org.opensearch.core.action.ActionListener;
2728
import org.opensearch.ml.common.connector.Connector;
2829
import org.opensearch.ml.common.connector.HttpConnector;
@@ -114,14 +115,15 @@ public void invokeRemoteService(
114115
default:
115116
throw new IllegalArgumentException("unsupported http method");
116117
}
118+
ThreadContext.StoredContext storedContext = client.threadPool().getThreadContext().newStoredContext(true);
117119
AsyncExecuteRequest executeRequest = AsyncExecuteRequest
118120
.builder()
119121
.request(request)
120122
.requestContentPublisher(new SimpleHttpContentPublisher(request))
121123
.responseHandler(
122124
new MLSdkAsyncHttpResponseHandler(
123125
executionContext,
124-
actionListener,
126+
ActionListener.runBefore(actionListener, storedContext::restore),
125127
parameters,
126128
connector,
127129
scriptService,

0 commit comments

Comments
 (0)