From 500bba0561cdae809cf550317ede867d3ffce662 Mon Sep 17 00:00:00 2001 From: Martin Zumsande Date: Tue, 30 Jul 2024 17:49:04 -0400 Subject: [PATCH] test: fix constructor of msg_tx In python, if the default value is a mutable object (here: a class) its shared over all instances, so that one instance being changed would affect others to be changed as well. This was likely the source of various intermittent bugs in the functional tests. Github-Pull: #30552 Rebased-From: ec5e294e4b830766dcc4a80add0613d3705c1794 --- test/functional/test_framework/messages.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/functional/test_framework/messages.py b/test/functional/test_framework/messages.py index 1780678de1..dc5f665b6a 100755 --- a/test/functional/test_framework/messages.py +++ b/test/functional/test_framework/messages.py @@ -1293,8 +1293,11 @@ class msg_tx: __slots__ = ("tx",) msgtype = b"tx" - def __init__(self, tx=CTransaction()): - self.tx = tx + def __init__(self, tx=None): + if tx is None: + self.tx = CTransaction() + else: + self.tx = tx def deserialize(self, f): self.tx.deserialize(f)