mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-19 05:45:05 +01:00
Merge #18543: test: Use one node to avoid a race due to missing sync in rpc_signrawtransaction
fa2251df5e
test: Use one node to avoid a race due to missing sync in rpc_signrawtransaction (MarcoFalke) Pull request description: Node 0 creates a transaction in a block, and node 1 sends a spending transaction without properly syncing the utxo set. Fixes intermittent test failure in rpc_signrawtransaction ``` test 2020-04-01T00:14:03.400000Z TestFramework (ERROR): JSONRPC error Traceback (most recent call last): File "C:\projects\bitcoin\test\functional\test_framework\test_framework.py", line 112, in main self.run_test() File "C:\projects\bitcoin/test/functional/rpc_signrawtransaction.py", line 213, in run_test self.witness_script_test() File "C:\projects\bitcoin/test/functional/rpc_signrawtransaction.py", line 208, in witness_script_test self.nodes[1].sendrawtransaction(spending_tx_signed['hex']) File "C:\projects\bitcoin\test\functional\test_framework\coverage.py", line 47, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) File "C:\projects\bitcoin\test\functional\test_framework\authproxy.py", line 141, in __call__ raise JSONRPCException(response['error'], status) test_framework.authproxy.JSONRPCException: bad-txns-inputs-missingorspent (-25) ``` Full log: https://ci.appveyor.com/project/DrahtBot/bitcoin/builds/31864368 ACKs for top commit: achow101: ACKfa2251df5e
Tree-SHA512: 9450d216d9989d6c44028ae4b9818790cfb00796e0de22331422f775f74d697bb14ebae0e88dca20c6b641363780da384fe94c708e20fce9cfde929fb343b12f
This commit is contained in:
commit
abc145c9a4
@ -169,7 +169,7 @@ class SignRawTransactionsTest(BitcoinTestFramework):
|
|||||||
assert 'complete' in spending_tx_signed
|
assert 'complete' in spending_tx_signed
|
||||||
assert_equal(spending_tx_signed['complete'], True)
|
assert_equal(spending_tx_signed['complete'], True)
|
||||||
|
|
||||||
# Now try with a P2PKH script as the witnessScript
|
self.log.info('Try with a P2PKH script as the witnessScript')
|
||||||
embedded_addr_info = self.nodes[1].getaddressinfo(self.nodes[1].getnewaddress('', 'legacy'))
|
embedded_addr_info = self.nodes[1].getaddressinfo(self.nodes[1].getnewaddress('', 'legacy'))
|
||||||
embedded_privkey = self.nodes[1].dumpprivkey(embedded_addr_info['address'])
|
embedded_privkey = self.nodes[1].dumpprivkey(embedded_addr_info['address'])
|
||||||
witness_script = embedded_addr_info['scriptPubKey']
|
witness_script = embedded_addr_info['scriptPubKey']
|
||||||
@ -186,9 +186,9 @@ class SignRawTransactionsTest(BitcoinTestFramework):
|
|||||||
# Check the signing completed successfully
|
# Check the signing completed successfully
|
||||||
assert 'complete' in spending_tx_signed
|
assert 'complete' in spending_tx_signed
|
||||||
assert_equal(spending_tx_signed['complete'], True)
|
assert_equal(spending_tx_signed['complete'], True)
|
||||||
self.nodes[1].sendrawtransaction(spending_tx_signed['hex'])
|
self.nodes[0].sendrawtransaction(spending_tx_signed['hex'])
|
||||||
|
|
||||||
# Now try with a P2PK script as the witnessScript
|
self.log.info('Try with a P2PK script as the witnessScript')
|
||||||
embedded_addr_info = self.nodes[1].getaddressinfo(self.nodes[1].getnewaddress('', 'legacy'))
|
embedded_addr_info = self.nodes[1].getaddressinfo(self.nodes[1].getnewaddress('', 'legacy'))
|
||||||
embedded_privkey = self.nodes[1].dumpprivkey(embedded_addr_info['address'])
|
embedded_privkey = self.nodes[1].dumpprivkey(embedded_addr_info['address'])
|
||||||
witness_script = CScript([hex_str_to_bytes(embedded_addr_info['pubkey']), OP_CHECKSIG]).hex()
|
witness_script = CScript([hex_str_to_bytes(embedded_addr_info['pubkey']), OP_CHECKSIG]).hex()
|
||||||
@ -205,7 +205,7 @@ class SignRawTransactionsTest(BitcoinTestFramework):
|
|||||||
# Check the signing completed successfully
|
# Check the signing completed successfully
|
||||||
assert 'complete' in spending_tx_signed
|
assert 'complete' in spending_tx_signed
|
||||||
assert_equal(spending_tx_signed['complete'], True)
|
assert_equal(spending_tx_signed['complete'], True)
|
||||||
self.nodes[1].sendrawtransaction(spending_tx_signed['hex'])
|
self.nodes[0].sendrawtransaction(spending_tx_signed['hex'])
|
||||||
|
|
||||||
def run_test(self):
|
def run_test(self):
|
||||||
self.successful_signing_test()
|
self.successful_signing_test()
|
||||||
|
Loading…
Reference in New Issue
Block a user