From: wbtek Date: Mon, 29 Dec 2025 16:12:48 +0000 (+0900) Subject: server : Cmdline arg -to changes http read timeout from current 600sec default (... X-Git-Tag: upstream/0.0.7599~25 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=5b1248c9afa46be1a80bc71e2be8241f18529643;p=pkg%2Fggml%2Fsources%2Fllama.cpp 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 --- diff --git a/tools/server/server-models.cpp b/tools/server/server-models.cpp index cb7e7045..56e1dc46 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 7e335375..24ddc656 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();