From 2d34722e473bf3d12ed78e9ab03cfc8ff91b1d13 Mon Sep 17 00:00:00 2001 From: MarcoFalke Date: Mon, 2 Apr 2018 17:40:16 -0400 Subject: [PATCH] Merge #12861: [tests] Stop feature_block.py from blowing up memory. 89fe5feea2 [tests] Stop feature_block.py from blowing up memory. (John Newbery) Pull request description: The new P2PDataStore class was sending full blocks in headers messages, which meant that calls to send_blocks_and_test() would blow up memory if called with a large number of blocks. Fix that by only sending headers in headers messages. This means that python should use just over 1GB for feature_block.py (with bitcoind also using just over 1GB). That's the same as before the feature_block.py refactor. Tree-SHA512: 796ea35584748ceb7b8fa36c732a461fb924dafe0b4c52d3eccf21a00fbdb65aef41ce1d91f027aad50cde6df5d30e985aaef474cb743975c06762975469cbbb --- test/functional/test_framework/mininode.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/functional/test_framework/mininode.py b/test/functional/test_framework/mininode.py index e48d620bd9..d17504b390 100755 --- a/test/functional/test_framework/mininode.py +++ b/test/functional/test_framework/mininode.py @@ -523,7 +523,7 @@ class P2PDataStore(P2PInterface): # as we go. prev_block_hash = headers_list[-1].hashPrevBlock if prev_block_hash in self.block_store: - prev_block_header = self.block_store[prev_block_hash] + prev_block_header = CBlockHeader(self.block_store[prev_block_hash]) headers_list.append(prev_block_header) if prev_block_header.sha256 == hash_stop: # if this is the hashstop header, stop here @@ -564,7 +564,7 @@ class P2PDataStore(P2PInterface): self.block_store[block.sha256] = block self.last_block_hash = block.sha256 - self.send_message(msg_headers([blocks[-1]])) + self.send_message(msg_headers([CBlockHeader(blocks[-1])])) if request_block: wait_until(lambda: blocks[-1].sha256 in self.getdata_requests, timeout=timeout, lock=mininode_lock)