aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2023-08-03 09:43:43 +0100
committerfanquake <fanquake@gmail.com>2023-08-03 10:02:19 +0100
commit532bd1f2e70eab14cd69ebad943806743b833f92 (patch)
tree45b3f12b4e17e8ea90b3da28871a1dbf0a572e5b
parent2fa60f0b683cefd7956273986dafe3bde00c98fd (diff)
parent703b758e187492d4752270cd9922eaf0af20e2d0 (diff)
Merge bitcoin/bitcoin#28204: qa: Close SQLite connection properly
703b758e187492d4752270cd9922eaf0af20e2d0 qa: Close SQLite connection properly (Hennadii Stepanov) Pull request description: This PR is a follow-up for https://github.com/bitcoin/bitcoin/pull/26462 that introduced a bug on Windows: ``` >test\functional\wallet_descriptor.py ... PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: ... ``` From `sqlite3` Python module [docs](https://docs.python.org/3/library/sqlite3.html#how-to-use-the-connection-context-manager): > `Connection` object used as context manager only commits or rollbacks transactions, so the connection object should be closed manually. ACKs for top commit: MarcoFalke: lgtm ACK 703b758e187492d4752270cd9922eaf0af20e2d0 theStack: utACK 703b758e187492d4752270cd9922eaf0af20e2d0 Tree-SHA512: 35b1403507be06d1fc04e7e07ff56af5bcfe5013024671f0c1d9f3c41aacc4c777bcc6376ce82d720394e27450415d50ff5d5834ed388ec3f21503f86f1a42a5
-rwxr-xr-xtest/functional/wallet_descriptor.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/test/functional/wallet_descriptor.py b/test/functional/wallet_descriptor.py
index f4b67bae1b..6f563987cc 100755
--- a/test/functional/wallet_descriptor.py
+++ b/test/functional/wallet_descriptor.py
@@ -235,9 +235,11 @@ class WalletDescriptorTest(BitcoinTestFramework):
self.nodes[0].createwallet(wallet_name="crashme", descriptors=True)
self.nodes[0].unloadwallet("crashme")
wallet_db = os.path.join(self.nodes[0].wallets_path, "crashme", self.wallet_data_filename)
- with sqlite3.connect(wallet_db) as conn:
+ conn = sqlite3.connect(wallet_db)
+ with conn:
# add "cscript" entry: key type is uint160 (20 bytes), value type is CScript (zero-length here)
conn.execute('INSERT INTO main VALUES(?, ?)', (b'\x07cscript' + b'\x00'*20, b'\x00'))
+ conn.close()
assert_raises_rpc_error(-4, "Unexpected legacy entry in descriptor wallet found.", self.nodes[0].loadwallet, "crashme")