From fffb9365f0e014f8c5e64465c67b70898ec11073 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Mar 2026 07:08:50 +0000 Subject: [PATCH 1/2] Initial plan From c7ac43eda2fc2ed2243cbdd9f7c161965a653e93 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Mar 2026 07:12:13 +0000 Subject: [PATCH 2/2] Fix unsynchronized transaction read in ExecuteOnConnection Co-authored-by: jamesmoore <6506748+jamesmoore@users.noreply.github.com> --- SDMeta/Cache/SqliteDataSource.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/SDMeta/Cache/SqliteDataSource.cs b/SDMeta/Cache/SqliteDataSource.cs index 13ae550..0c52edf 100644 --- a/SDMeta/Cache/SqliteDataSource.cs +++ b/SDMeta/Cache/SqliteDataSource.cs @@ -75,15 +75,12 @@ private SqliteConnection GetConnection() private T ExecuteOnConnection(Func func) { - if (this.transaction?.Connection != null) + lock (transactionLock) { - lock (transactionLock) + var currentTransaction = this.transaction; + if (currentTransaction?.Connection != null) { - var currentTransaction = this.transaction; - if (currentTransaction?.Connection != null) - { - return func(currentTransaction.Connection, currentTransaction); - } + return func(currentTransaction.Connection, currentTransaction); } }