From 4909dc60a2dc96ad5d44e2be12b906662a54d13c Mon Sep 17 00:00:00 2001 From: SoftwareRenderer <138734813+SoftwareRenderer@users.noreply.github.com> Date: Fri, 13 Mar 2026 09:25:35 -0400 Subject: [PATCH 1/3] server: reset kill-switch on client error This avoids triggering a server kill switch. If the client sends a request that exceeds the configured context size, an appropriate HTTP 400 response is provided and no tokens are generated. However since no tokens are generated, update_slots() increments n_empty_consecutive. If the client sends 3 such messages in a row, the server terminates. --- tools/server/server-context.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/server/server-context.cpp b/tools/server/server-context.cpp index b4373c101b42..625e04310e2b 100644 --- a/tools/server/server-context.cpp +++ b/tools/server/server-context.cpp @@ -2220,6 +2220,7 @@ struct server_context_impl { "tokens), try increasing it", slot.task->n_tokens(), slot.n_ctx), ERROR_TYPE_EXCEED_CONTEXT_SIZE); + n_empty_consecutive = 0; // Reset server kill-switch counter, client error should not kill the server slot.release(); continue; } From a3050a5cef9b5e8fb6907e06fe70317c82602417 Mon Sep 17 00:00:00 2001 From: SoftwareRenderer <138734813+SoftwareRenderer@users.noreply.github.com> Date: Fri, 13 Mar 2026 13:34:43 -0400 Subject: [PATCH 2/3] moved counter reset as per recommendation --- tools/server/server-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/server/server-context.cpp b/tools/server/server-context.cpp index 625e04310e2b..f0183f1a7790 100644 --- a/tools/server/server-context.cpp +++ b/tools/server/server-context.cpp @@ -1190,6 +1190,7 @@ struct server_context_impl { : SLOT_STATE_STARTED; SLT_INF(slot, "processing task, is_child = %d\n", slot.task->is_child()); + n_empty_consecutive = 0; // Reset server kill-switch counter return true; } @@ -2220,7 +2221,6 @@ struct server_context_impl { "tokens), try increasing it", slot.task->n_tokens(), slot.n_ctx), ERROR_TYPE_EXCEED_CONTEXT_SIZE); - n_empty_consecutive = 0; // Reset server kill-switch counter, client error should not kill the server slot.release(); continue; } From 1794a7bff2c3f6b4b5337322ccb8f555876d0746 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Fri, 13 Mar 2026 19:57:30 +0200 Subject: [PATCH 3/3] cont : minor --- tools/server/server-context.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/server/server-context.cpp b/tools/server/server-context.cpp index f0183f1a7790..c47ad876cb85 100644 --- a/tools/server/server-context.cpp +++ b/tools/server/server-context.cpp @@ -1189,8 +1189,10 @@ struct server_context_impl { ? SLOT_STATE_WAIT_OTHER // wait for the parent to process prompt : SLOT_STATE_STARTED; + // reset server kill-switch counter + n_empty_consecutive = 0; + SLT_INF(slot, "processing task, is_child = %d\n", slot.task->is_child()); - n_empty_consecutive = 0; // Reset server kill-switch counter return true; }