From 8e04c3ce9739fc0f24947dcbf33bc209d5f58460 Mon Sep 17 00:00:00 2001 From: Steve Grubb Date: Mon, 13 May 2024 15:07:47 -0400 Subject: [PATCH 1/3] server: free sampling contexts on exit This cleans up last leak found by the address sanitizer. --- examples/server/server.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index ceaeb1f76dc3d..4a947fbe69afe 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -671,6 +671,12 @@ struct server_context { model = nullptr; } + // Clear any sampling context + for (server_slot & slot : slots) { + if (slot.ctx_sampling != nullptr) + llama_sampling_free(slot.ctx_sampling); + } + llama_batch_free(batch); } From 0a9eb98ee0f5fe76b7ac2520ddf7fb5523f501c2 Mon Sep 17 00:00:00 2001 From: Steve Grubb Date: Mon, 13 May 2024 17:59:55 -0400 Subject: [PATCH 2/3] fix whitespace --- examples/server/server.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 4a947fbe69afe..94adbac07a385 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -672,10 +672,11 @@ struct server_context { } // Clear any sampling context - for (server_slot & slot : slots) { - if (slot.ctx_sampling != nullptr) - llama_sampling_free(slot.ctx_sampling); - } + for (server_slot & slot : slots) { + if (slot.ctx_sampling != nullptr) { + llama_sampling_free(slot.ctx_sampling); + } + } llama_batch_free(batch); } From 104abc6df239c7598faea9cae82c3c7bb570c95f Mon Sep 17 00:00:00 2001 From: Steve Grubb Date: Mon, 13 May 2024 18:00:58 -0400 Subject: [PATCH 3/3] fix whitespace --- examples/server/server.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 94adbac07a385..7e0d068f830ab 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -671,7 +671,7 @@ struct server_context { model = nullptr; } - // Clear any sampling context + // Clear any sampling context for (server_slot & slot : slots) { if (slot.ctx_sampling != nullptr) { llama_sampling_free(slot.ctx_sampling);