From 623255918ec796382f094ee03a91504e54ee93c3 Mon Sep 17 00:00:00 2001 From: jthomp007c Date: Fri, 20 Jun 2025 12:46:37 -0400 Subject: [PATCH 1/2] Test Code for CELLO-1164 Looks like ctrlm_db_close() may be hanging. Have added excessive debug to said function to confirm if it's hanging, also added code to finalize any open SQL statements in case sqlite3_close() is hanging on open statements --- src/database/ctrlm_database.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/database/ctrlm_database.cpp b/src/database/ctrlm_database.cpp index e399a3c..2023c1c 100644 --- a/src/database/ctrlm_database.cpp +++ b/src/database/ctrlm_database.cpp @@ -279,8 +279,18 @@ bool ctrlm_db_open(const char *db_path) { void ctrlm_db_close() { if(g_ctrlm_db.handle != NULL) { + sqlite3_stmt *p_stmt; + int count = 0; + XLOGD_INFO("finalizing..."); + while((p_stmt = sqlit3_next_stmt(g_ctrlm_db.handle, NULL)) != NULL) { + sqlite3_finalize(p_stmt); + count++; + XLOGD_INFO("statement %d", count); + } + XLOGD_INFO("closing..."); sqlite3_close(g_ctrlm_db.handle); g_ctrlm_db.handle = NULL; + XLOGD_INFO("closed..."); } } From ac000d168a993cf690c6221c9f9849684b288615 Mon Sep 17 00:00:00 2001 From: jthomp007c Date: Fri, 20 Jun 2025 17:52:25 -0400 Subject: [PATCH 2/2] Update ctrlm_database.cpp --- src/database/ctrlm_database.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/database/ctrlm_database.cpp b/src/database/ctrlm_database.cpp index 2023c1c..a302f5d 100644 --- a/src/database/ctrlm_database.cpp +++ b/src/database/ctrlm_database.cpp @@ -282,7 +282,7 @@ void ctrlm_db_close() { sqlite3_stmt *p_stmt; int count = 0; XLOGD_INFO("finalizing..."); - while((p_stmt = sqlit3_next_stmt(g_ctrlm_db.handle, NULL)) != NULL) { + while((p_stmt = sqlite3_stmt_next(g_ctrlm_db.handle, NULL)) != NULL) { sqlite3_finalize(p_stmt); count++; XLOGD_INFO("statement %d", count);