Andrew Poelstra
acae1846f6
Merge 6c647c89db into merged_master (Bitcoin PR #18738 )
2020-11-26 01:08:43 +00:00
Andrew Poelstra
c0617d43b4
Merge a33901cb6d into merged_master (Bitcoin PR #18814 )
2020-11-26 01:08:42 +00:00
Andrew Poelstra
f780a0ebbb
Merge 246e878e78 into merged_master (Bitcoin PR #18894 )
2020-11-26 01:08:42 +00:00
Andrew Poelstra
cd70e1ac42
Merge 8d17f8dc17 into merged_master (Bitcoin PR #18578 )
2020-11-26 01:08:42 +00:00
Andrew Poelstra
530a413055
Merge 219c55da75 into merged_master (Bitcoin PR #16710 )
2020-11-26 01:08:42 +00:00
Andrew Poelstra
66f47ea527
Merge 8da1e43b63 into merged_master (Bitcoin PR #18910 )
2020-11-26 01:08:42 +00:00
Andrew Poelstra
9ac62395d7
Merge e45fb7e0d2 into merged_master (Bitcoin PR #18877 )
2020-11-26 01:08:42 +00:00
Andrew Poelstra
bf32589a16
Merge 4fa3157014 into merged_master (Bitcoin PR #18929 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
f9a77e35ca
Merge 0f2fa599ae into merged_master (Bitcoin PR #18931 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
b712035c61
Merge ad1b7b1817 into merged_master (Bitcoin PR #18957 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
57d9b2f216
Merge 49d237ce32 into merged_master (Bitcoin PR #18928 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
bda1054131
Merge 7a5767423f into merged_master (Bitcoin PR #18808 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
7c5fd66303
Merge eb2ffbb7c1 into merged_master (Bitcoin PR #18914 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
c74e34cf8e
Merge f71a3a8829 into merged_master (Bitcoin PR #18939 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
f32fd217a5
Merge ec4d27fa8b into merged_master (Bitcoin PR #18216 )
2020-11-26 01:08:40 +00:00
Andrew Poelstra
1974749d21
Merge 88d8b4e182 into merged_master (Bitcoin PR #18901 )
2020-11-26 01:08:40 +00:00
Andrew Poelstra
34d072006e
Merge 376294cde6 into merged_master (Bitcoin PR #18866 )
2020-11-26 01:08:40 +00:00
Andrew Poelstra
3b7c9333fb
Merge b55866969e into merged_master (Bitcoin PR #18917 )
2020-11-26 01:08:40 +00:00
Andrew Poelstra
1d1a32e637
Merge 5b24f6084e into merged_master (Bitcoin PR #16224 )
2020-11-26 01:08:40 +00:00
Andrew Poelstra
bb1ada83c9
Merge 3930014abc into merged_master (Bitcoin PR #18864 )
2020-11-26 01:08:40 +00:00
Andrew Poelstra
611dedde60
Merge f54753293f into merged_master (Bitcoin PR #18905 )
2020-11-26 01:08:40 +00:00
Andrew Poelstra
52b7ef99cc
Merge 56611b0e24 into merged_master (Bitcoin PR #18743 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
f2d9cc0620
Merge c1cd2b5a97 into merged_master (Bitcoin PR #18899 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
31a9eea2af
Merge 3b1e289248 into merged_master (Bitcoin PR #18535 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
e42dc5493b
Merge 7bcc42b403 into merged_master (Bitcoin PR #18873 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
75074c1d3c
Merge c6b15ec0ee into merged_master (Bitcoin PR #17874 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
d7f7c1089d
Merge f763283b65 into merged_master (Bitcoin PR #18512 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
b7d3244d47
Merge 88b2652fad into merged_master (Bitcoin PR #18853 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
bdd412086c
Merge 6621be5351 into merged_master (Bitcoin PR #18843 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
14c6827363
Merge dd3310bbb8 into merged_master (Bitcoin PR #18854 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
a88d2747bb
Merge 551dc7f664 into merged_master (Bitcoin PR #18806 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
e991e7713b
Merge d96fdc2a39 into merged_master (Bitcoin PR #18741 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
e5faae4af6
Merge 60091d20f9 into merged_master (Bitcoin PR #9381 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
d1fbd3b167
Merge fbd522721c into merged_master (Bitcoin PR #18885 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
ca6053c5e5
Merge 52ce396b2a into merged_master (Bitcoin PR #18879 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
5a58efd0a5
Merge ec79b5f86b into merged_master (Bitcoin PR #18782 )
2020-11-26 01:08:37 +00:00
Andrew Poelstra
028afdac4a
Merge e727c2bdca into merged_master (Bitcoin PR #18088 )
2020-11-26 01:08:37 +00:00
Andrew Poelstra
a6d19d39c7
Merge b549cb1bd2 into merged_master (Bitcoin PR #18443 )
2020-11-26 01:08:37 +00:00
Andrew Poelstra
d4711bdf91
Merge 23c926d859 into merged_master (Bitcoin PR #18699 )
2020-11-26 01:08:37 +00:00
Andrew Poelstra
8c572c898e
Merge 42fd503819 into merged_master (Bitcoin PR #18786 )
2020-11-26 01:08:37 +00:00
Andrew Poelstra
315d2556f2
Merge 0a729b0e42 into merged_master (Bitcoin PR #18783 )
2020-11-26 01:08:37 +00:00
Andrew Poelstra
335af1e4c4
Merge 74a1152f25 into merged_master (Bitcoin PR #18859 )
2020-11-26 01:08:36 +00:00
Andrew Poelstra
783673416d
Merge afa577c323 into merged_master (Bitcoin PR #15768 )
2020-11-26 01:08:36 +00:00
Andrew Poelstra
e58322b8aa
Merge 2e6a16b968 into merged_master (Bitcoin PR #18855 )
2020-11-26 01:08:36 +00:00
Andrew Poelstra
cdc4c006f4
Merge cce034b028 into merged_master (Bitcoin PR #18839 )
2020-11-26 01:08:36 +00:00
Andrew Poelstra
c0fda0cc05
Merge ddc0a600b3 into merged_master (Bitcoin PR #18617 )
...
For reasons I do not really grok, this PR changes the timing behavior of the
functional tests to reliably expose a deadlock in the claimpegin RPC that has
existed since the 0.17 rebase.
The mechanism is: in `claimpegin` in src/wallet/rpcwallet.cpp:5873, we call
`AcceptToMemoryPoolWorker`. This requires cs_main to be locked, which it is
not (contrast Core's `testmempoolaccept` RPC, which similarly calls
`AcceptToMemoryPoolWorker` from the RPC thread, and locks cs_main immediately
before).
We do *say* that it is locked, in the `LockAssertion` one the line above, but
this was added in ad3d496d78 during the 0.17
rebase (PR #620 ), apparently to shut up some linter on OSX, and as near as I
can tell it was never true.
Anyway, `AcceptToMemoryPoolWorker` calls through a couple layers which assume
cs_main is locked, to `AcceptSingleTransaction`, which locks m_pool.cs on line
src/validation.cpp:1101. It then calls `PreChecks`, which on line 784 calls
::ChainActive(), which _actually_ locks cs_main, though only briefly. This
line is the deadlock, because we locked m_pool.cs followed by cs_main...
...meanwhile, in src/net_processing.cpp, we lock cs_main at the top of the
`PeerLogicValidation::SendMessages` loop (src/net_processing.cpp:3628). In the
same loop, in the `feefilter` message processing, we call CTxMemPool::GetMinFee
(src/net_processing.cpp:4137), which locks m_pool.cs. Deadlock.
Anyway, that explains the change to locking behavior that I added to an
otherwise test-only PR.
2020-11-26 01:08:36 +00:00
Andrew Poelstra
9ea76b54aa
Merge 68ef9523d1 into merged_master (Bitcoin PR #18413 )
2020-11-26 01:08:36 +00:00
Andrew Poelstra
2d0adcc65b
Merge 844d2070a2 into merged_master (Bitcoin PR #18828 )
2020-11-26 01:08:35 +00:00
Andrew Poelstra
4414990576
Merge 608359b071 into merged_master (Bitcoin PR #16426 )
2020-11-26 01:08:35 +00:00
Andrew Poelstra
d4125a30a6
Merge e5b9308920 into merged_master (Bitcoin PR #18829 )
2020-11-26 01:08:35 +00:00