From 75d0e4c5444249f0cf81ed0494e2c2717170b695 Mon Sep 17 00:00:00 2001 From: Suhas Daftuar Date: Mon, 9 Apr 2018 14:07:47 -0400 Subject: [qa] Delete cookie file before starting node If a cookie file exists in a datadir prior to node startup, it must have been leftover from a prior unclean shutdown. As bitcoind will overwrite it anyway, delete it before starting up to prevent the test framework from inadvertently trying to connect using stale credentials. --- test/functional/test_framework/test_node.py | 5 +++++ test/functional/test_framework/util.py | 6 ++++++ 2 files changed, 11 insertions(+) (limited to 'test/functional/test_framework') diff --git a/test/functional/test_framework/test_node.py b/test/functional/test_framework/test_node.py index 4a4ab046c5..9436ae0d3a 100755 --- a/test/functional/test_framework/test_node.py +++ b/test/functional/test_framework/test_node.py @@ -20,6 +20,7 @@ from .authproxy import JSONRPCException from .util import ( append_config, assert_equal, + delete_cookie_file, get_rpc_proxy, rpc_url, wait_until, @@ -105,6 +106,10 @@ class TestNode(): extra_args = self.extra_args if stderr is None: stderr = self.stderr + # Delete any existing cookie file -- if such a file exists (eg due to + # unclean shutdown), it will get overwritten anyway by bitcoind, and + # potentially interfere with our attempt to authenticate + delete_cookie_file(self.datadir) self.process = subprocess.Popen(self.args + extra_args, stderr=stderr, *args, **kwargs) self.running = True self.log.debug("bitcoind started, waiting for RPC to come up") diff --git a/test/functional/test_framework/util.py b/test/functional/test_framework/util.py index a24a2ec4f5..f22322fbbc 100644 --- a/test/functional/test_framework/util.py +++ b/test/functional/test_framework/util.py @@ -332,6 +332,12 @@ def get_auth_cookie(datadir): raise ValueError("No RPC credentials") return user, password +# If a cookie file exists in the given datadir, delete it. +def delete_cookie_file(datadir): + if os.path.isfile(os.path.join(datadir, "regtest", ".cookie")): + logger.debug("Deleting leftover cookie file") + os.remove(os.path.join(datadir, "regtest", ".cookie")) + def get_bip9_status(node, key): info = node.getblockchaininfo() return info['bip9_softforks'][key] -- cgit v1.2.3