From 9ca03ffd20460efc85fd1f289c037b70ac793cf7 Mon Sep 17 00:00:00 2001 From: Waket Zheng Date: Mon, 27 Oct 2025 03:03:38 +0800 Subject: [PATCH 1/3] refactor: check connection connected before append to free list when release it --- asyncodbc/pool.py | 2 +- tests/test_pool.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/asyncodbc/pool.py b/asyncodbc/pool.py index d1001f1..a43f223 100644 --- a/asyncodbc/pool.py +++ b/asyncodbc/pool.py @@ -192,7 +192,7 @@ async def release(self, conn): self._terminated.remove(conn) return self._used.remove(conn) - if not conn.closed: + if conn.connected and not conn.closed: if self._closing: await conn.close() else: diff --git a/tests/test_pool.py b/tests/test_pool.py index eee8623..612258c 100644 --- a/tests/test_pool.py +++ b/tests/test_pool.py @@ -52,6 +52,14 @@ async def test_release(pool): await pool.release(conn) assert 1 == pool.freesize assert not pool._used + assert conn in pool._free + + conn2 = await pool.acquire() + try: + await conn2.close() + finally: + await pool.release(conn2) + assert conn2 not in pool._free @pytest.mark.asyncio From 45cda60a109d914147d718defc711900b221b713 Mon Sep 17 00:00:00 2001 From: Waket Zheng Date: Mon, 27 Oct 2025 03:25:41 +0800 Subject: [PATCH 2/3] Fix test error --- tests/test_pool.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/tests/test_pool.py b/tests/test_pool.py index 612258c..50ef36e 100644 --- a/tests/test_pool.py +++ b/tests/test_pool.py @@ -52,14 +52,6 @@ async def test_release(pool): await pool.release(conn) assert 1 == pool.freesize assert not pool._used - assert conn in pool._free - - conn2 = await pool.acquire() - try: - await conn2.close() - finally: - await pool.release(conn2) - assert conn2 not in pool._free @pytest.mark.asyncio @@ -68,9 +60,9 @@ async def test_release_closed(pool): assert 0 == pool.freesize await conn.close() await pool.release(conn) - assert 1 == pool.freesize + assert 0 == pool.freesize assert not pool._used - assert 1 == pool.size + assert 0 == pool.size conn2 = await pool.acquire() assert 0 == pool.freesize From c2aca763553635a6e447fd35137c86e5d983e7a8 Mon Sep 17 00:00:00 2001 From: Waket Zheng Date: Sat, 1 Nov 2025 15:49:43 +0800 Subject: [PATCH 3/3] ci: avoid repeat running for PR from self --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a946be6..6569efb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,12 +2,13 @@ name: ci on: push: branches-ignore: - - master + - main pull_request: branches-ignore: - master jobs: test: + if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.base.repo.full_name == github.repository) }} runs-on: ubuntu-22.04 services: mssql: @@ -57,6 +58,7 @@ jobs: COVERALLS_PARALLEL: true coveralls: + if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.base.repo.full_name == github.repository) }} name: Finish Coveralls needs: test runs-on: ubuntu-22.04