aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2022-02-25 08:45:03 +0100
committerMarcoFalke <falke.marco@gmail.com>2022-02-25 08:45:11 +0100
commitb00b60ed4f27066656e45635f1386e6b1550c6ed (patch)
tree6b87c8cdc015efac7007605c9402533e9ca0b2d7 /test/functional
parentf1ce67f09fbaba4013443bce416e46e5b2d37c19 (diff)
parentd41ed3215355582879c8eb6c99c2da33852f6cb1 (diff)
Merge bitcoin/bitcoin#24201: p2p: Avoid InitError when downgrading peers.dat
d41ed3215355582879c8eb6c99c2da33852f6cb1 p2p: Avoid InitError when downgrading peers.dat (junderw) Pull request description: fixes #24188 (also see https://github.com/bitcoin/bitcoin/pull/22762#issuecomment-951063826) When downgrading, a peers.dat with a future version that has a minimum required version larger than the downgraded Bitcoin Core version would cause an InitError. This commit changes this behavior to overwrite the existing peers.dat with a new empty one. ACKs for top commit: prayank23: reACK https://github.com/bitcoin/bitcoin/pull/24201/commits/d41ed3215355582879c8eb6c99c2da33852f6cb1 kallewoof: reACK d41ed3215355582879c8eb6c99c2da33852f6cb1 Tree-SHA512: c8e625fe36ce0b1aab6c8ef7241c8954038bb856f2de27bdc4814dc9a60e51be28815c7d77d0f96eace49687a0cea02deb713978bbd3a5add742f50a675f2a40
Diffstat (limited to 'test/functional')
-rwxr-xr-xtest/functional/feature_addrman.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/test/functional/feature_addrman.py b/test/functional/feature_addrman.py
index 14a4f8abb7..0fdefaa9c3 100755
--- a/test/functional/feature_addrman.py
+++ b/test/functional/feature_addrman.py
@@ -68,17 +68,16 @@ class AddrmanTest(BitcoinTestFramework):
self.start_node(0, extra_args=["-checkaddrman=1"])
assert_equal(self.nodes[0].getnodeaddresses(), [])
- self.log.info("Check that addrman from future cannot be read")
+ self.log.info("Check that addrman from future is overwritten with new addrman")
self.stop_node(0)
write_addrman(peers_dat, lowest_compatible=111)
- self.nodes[0].assert_start_raises_init_error(
- expected_msg=init_error(
- "Unsupported format of addrman database: 1. It is compatible with "
- "formats >=111, but the maximum supported by this version of "
- f"{self.config['environment']['PACKAGE_NAME']} is 4.: (.+)"
- ),
- match=ErrorMatch.FULL_REGEX,
- )
+ assert_equal(os.path.exists(peers_dat + ".bak"), False)
+ with self.nodes[0].assert_debug_log([
+ f'Creating new peers.dat because the file version was not compatible ("{peers_dat}"). Original backed up to peers.dat.bak',
+ ]):
+ self.start_node(0)
+ assert_equal(self.nodes[0].getnodeaddresses(), [])
+ assert_equal(os.path.exists(peers_dat + ".bak"), True)
self.log.info("Check that corrupt addrman cannot be read (EOF)")
self.stop_node(0)