From b8dca9136eae997632c4915dd27719e94a02d07b Mon Sep 17 00:00:00 2001 From: Jeroen Dekkers Date: Mon, 24 Jul 2023 18:10:16 +0200 Subject: [PATCH] Fix active query count after error Make sure the active query count is correctly decreased after an error occurs. --- src/xtdb_http_multinode/core.clj | 7 ++++--- tests/test_xtdb.py | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/xtdb_http_multinode/core.clj b/src/xtdb_http_multinode/core.clj index 0f750ab..de862d6 100644 --- a/src/xtdb_http_multinode/core.clj +++ b/src/xtdb_http_multinode/core.clj @@ -391,9 +391,10 @@ (if node (do (swap! active-queries-per-node active-query-inc node-name) - (let [ret (handler (assoc request :xtdb-node node))] - (swap! active-queries-per-node active-query-dec node-name) - ret)) + (try + (handler (assoc request :xtdb-node node)) + (finally + (swap! active-queries-per-node active-query-dec node-name)))) {:status 404, :body {:error "Node not found"}})) (handler request))))) diff --git a/tests/test_xtdb.py b/tests/test_xtdb.py index 1b00230..c625be0 100644 --- a/tests/test_xtdb.py +++ b/tests/test_xtdb.py @@ -38,3 +38,11 @@ def test_submit_tx(xtdb_node): assert entity['xt/id'] == 'boris' assert entity['last-name'] == 'Petrov' + + +def test_malformed(xtdb_node): + edn_headers = {'Content-Type': 'application/edn', 'Accept': 'application/adn'} + + data = '{:tx-ops [[]]}' + response = requests.post(f'http://127.0.0.1:3000/_xtdb/{xtdb_node}/submit-tx', headers=edn_headers, timeout=5, data=data) + assert response.status_code == 400