Skip to content

Commit

Permalink
Merge bitcoin#12861: [tests] Stop feature_block.py from blowing up me…
Browse files Browse the repository at this point in the history
…mory.

89fe5fe [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
  • Loading branch information
MarcoFalke committed Apr 2, 2018
2 parents 18815b4 + 89fe5fe commit c564424
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions test/functional/test_framework/mininode.py
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,7 @@ def on_getheaders(self, message):
# 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
Expand Down Expand Up @@ -539,7 +539,7 @@ def send_blocks_and_test(self, blocks, rpc, success=True, request_block=True, re
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)
Expand Down

0 comments on commit c564424

Please sign in to comment.