From 8ab1a17251312a16704e8ba902eacfaa402ddbb0 Mon Sep 17 00:00:00 2001 From: Jan Boon Date: Sat, 30 Mar 2024 02:39:33 +0800 Subject: [PATCH] handle seq rm return value --- examples/server/server.cpp | 5 ++++- llama.cpp | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 27d8f2d10..f08cad382 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -1745,7 +1745,10 @@ struct server_context { // Erase token cache const size_t n_erased = slot->cache_tokens.size(); - llama_kv_cache_seq_rm(ctx, slot->id + 1, -1, -1); + if (!llama_kv_cache_seq_rm(ctx, slot->id + 1, -1, -1)) { + send_error(task, "Failed to erase slot KV cache", ERROR_TYPE_INVALID_REQUEST); + break; + } slot->cache_tokens.clear(); server_task_result result; diff --git a/llama.cpp b/llama.cpp index f708d690c..c9ebd58f2 100644 --- a/llama.cpp +++ b/llama.cpp @@ -15243,7 +15243,9 @@ size_t llama_state_seq_set_data(struct llama_context * ctx, const uint8_t * src, GGML_ASSERT(!kv_self.recurrent); // not implemented // Wipe the slot - llama_kv_cache_seq_rm(kv_self, dest_seq_id, -1, -1); + if (!llama_kv_cache_seq_rm(kv_self, dest_seq_id, -1, -1)) { + return 0; + } const uint8_t * inp = src;