Skip to content

Commit ca46fc3

Browse files
committed
restore threadcontext for streaming
Signed-off-by: Hailong Cui <ihailong@amazon.com>
1 parent 14c60a0 commit ca46fc3

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

plugins/transport-reactor-netty4/src/main/java/org/opensearch/http/reactor/netty4/ReactorNetty4HttpServerTransport.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.opensearch.common.settings.Settings;
1818
import org.opensearch.common.util.BigArrays;
1919
import org.opensearch.common.util.concurrent.OpenSearchExecutors;
20+
import org.opensearch.common.util.concurrent.ThreadContext;
2021
import org.opensearch.common.util.io.IOUtils;
2122
import org.opensearch.common.util.net.NetUtils;
2223
import org.opensearch.core.common.unit.ByteSizeUnit;
@@ -392,7 +393,10 @@ protected Publisher<Void> incomingRequest(HttpServerRequest request, HttpServerR
392393
.subscribe(consumer, error -> {}, () -> consumer.accept(DefaultLastHttpContent.EMPTY_LAST_CONTENT));
393394

394395
incomingStream(new ReactorNetty4HttpRequest(request), consumer.httpChannel());
395-
return response.sendObject(consumer);
396+
397+
final ThreadContext.StoredContext storedContext = threadPool.getThreadContext().newStoredContext(false);
398+
// restore ThreadContext when streaming is finished
399+
return response.sendObject(consumer).then(Mono.fromRunnable(storedContext::close));
396400
} else {
397401
final ReactorNetty4NonStreamingRequestConsumer<HttpContent> consumer = new ReactorNetty4NonStreamingRequestConsumer<>(
398402
this,

0 commit comments

Comments
 (0)