From 5b1248c9afa46be1a80bc71e2be8241f18529643 Mon Sep 17 00:00:00 2001 From: wbtek <171302111+wbtek@users.noreply.github.com> Date: Tue, 30 Dec 2025 01:12:48 +0900 Subject: [PATCH] server : Cmdline arg -to changes http read timeout from current 600sec default (#18279) * Prevent crash if TTFT >300sec, boosted to 90 days * server : allow configurable HTTP timeouts for child models * server : pass needed timeouts from params only --------- Co-authored-by: Greg Slocum --- tools/server/server-models.cpp | 12 ++++++++++-- tools/server/server-models.h | 5 ++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/server/server-models.cpp b/tools/server/server-models.cpp index cb7e70455a..56e1dc46b8 100644 --- a/tools/server/server-models.cpp +++ b/tools/server/server-models.cpp @@ -662,7 +662,10 @@ server_http_res_ptr server_models::proxy_request(const server_http_req & req, co req.path, req.headers, req.body, - req.should_stop); + req.should_stop, + base_params.timeout_read, + base_params.timeout_write + ); return proxy; } @@ -950,13 +953,18 @@ server_http_proxy::server_http_proxy( const std::string & path, const std::map & headers, const std::string & body, - const std::function should_stop) { + const std::function should_stop, + int32_t timeout_read, + int32_t timeout_write + ) { // shared between reader and writer threads auto cli = std::make_shared(host, port); auto pipe = std::make_shared>(); // setup Client cli->set_connection_timeout(0, 200000); // 200 milliseconds + cli->set_write_timeout(timeout_read, 0); // reversed for cli (client) vs srv (server) + cli->set_read_timeout(timeout_write, 0); this->status = 500; // to be overwritten upon response this->cleanup = [pipe]() { pipe->close_read(); diff --git a/tools/server/server-models.h b/tools/server/server-models.h index 7e33537536..24ddc65662 100644 --- a/tools/server/server-models.h +++ b/tools/server/server-models.h @@ -183,7 +183,10 @@ public: const std::string & path, const std::map & headers, const std::string & body, - const std::function should_stop); + const std::function should_stop, + int32_t timeout_read, + int32_t timeout_write + ); ~server_http_proxy() { if (cleanup) { cleanup();