Andrew Poelstra
66472b679f
Merge f658c15bb9 into merged_master (Bitcoin PR #18434 )
2020-11-26 01:09:06 +00:00
Andrew Poelstra
eb1d22acba
Merge 1c86ed4148 into merged_master (Bitcoin PR #19276 )
2020-11-26 01:09:05 +00:00
Andrew Poelstra
f97404e437
Merge aa35ea5502 into merged_master (Bitcoin PR #19173 )
2020-11-26 01:08:59 +00:00
Andrew Poelstra
87dc4ce088
Merge b55b5b6c3d into merged_master (Bitcoin PR #19164 )
2020-11-26 01:08:59 +00:00
Andrew Poelstra
67f55c5173
Merge 234fabab90 into merged_master (Bitcoin PR #18210 )
2020-11-26 01:08:57 +00:00
Andrew Poelstra
5d22dc9e40
Merge 575589a62e into merged_master (Bitcoin PR #19041 )
2020-11-26 01:08:57 +00:00
Andrew Poelstra
1fca452fcd
Merge b5c423c48e into merged_master (Bitcoin PR #19014 )
2020-11-26 01:08:49 +00:00
Andrew Poelstra
8748cadcca
Merge 97b21b302a into merged_master (Bitcoin PR #18677 )
2020-11-26 01:08:47 +00:00
Andrew Poelstra
61d6b089f1
Merge e7736854ef into merged_master (Bitcoin PR #19008 )
2020-11-26 01:08:45 +00:00
Andrew Poelstra
bf32589a16
Merge 4fa3157014 into merged_master (Bitcoin PR #18929 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
1974749d21
Merge 88d8b4e182 into merged_master (Bitcoin PR #18901 )
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
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
d4125a30a6
Merge e5b9308920 into merged_master (Bitcoin PR #18829 )
2020-11-26 01:08:35 +00:00
Andrew Poelstra
2cee434502
Merge 35ef3c15ef into merged_master (Bitcoin PR #18591 )
2020-11-26 01:08:34 +00:00
Andrew Poelstra
a47016dcdb
Merge ab91a0e0fc into merged_master (Bitcoin PR #18798 )
2020-11-26 01:08:33 +00:00
Andrew Poelstra
733d5cf974
Merge e302830fae into merged_master (Bitcoin PR #18774 )
2020-11-26 01:08:33 +00:00
Andrew Poelstra
5e18722f6a
Merge a483ffd689 into merged_master (Bitcoin PR #18735 )
2020-11-26 01:08:32 +00:00
Andrew Poelstra
f9443bf23f
Merge ad04130742 into merged_master (Bitcoin PR #18799 )
2020-11-26 01:08:32 +00:00
Andrew Poelstra
bd525a9dcd
Merge 5352d14b37 into merged_master (Bitcoin PR #18778 )
2020-11-26 01:08:31 +00:00
Andrew Poelstra
442dfa8bff
Merge fc00e651e4 into merged_master (Bitcoin PR #18705 )
2020-11-26 01:08:26 +00:00
Andrew Poelstra
51efdc2d8b
Merge d7bdba460c into merged_master (Bitcoin PR #18683 )
2020-11-26 01:08:24 +00:00
Andrew Poelstra
fd37b7c5d6
Merge 54f812d9d2 into merged_master (Bitcoin PR #18673 )
2020-11-26 01:08:23 +00:00
Andrew Poelstra
2119e3a935
Merge 447f8676b2 into merged_master (Bitcoin PR #18667 )
2020-11-26 01:08:22 +00:00
Andrew Poelstra
c729046501
Merge 6ef45bc968 into merged_master (Bitcoin PR #18581 )
2020-11-26 01:08:18 +00:00
Andrew Poelstra
295275e76c
Merge a5623ba89f into merged_master (Bitcoin PR #18588 )
2020-11-26 01:08:17 +00:00
Andrew Poelstra
9729ead815
Merge 1b30761360 into merged_master (Bitcoin PR #16367 )
...
For the sake of getting on with the rebase, I just re-added all of bitcoin-common
and bitcoin-server to bitcoin-wallet. We should revisit and try to clean this
up in future, to try to achieve the same separation that Core has.
2020-11-26 01:08:16 +00:00
Andrew Poelstra
0a82500424
Merge 1ae366ecb0 into merged_master (Bitcoin PR #18569 )
2020-11-26 01:08:14 +00:00
Andrew Poelstra
12b33a96c3
Merge dcef5ad6ec into merged_master (Bitcoin PR #18562 )
2020-11-26 01:08:14 +00:00
Andrew Poelstra
3b19aa37cd
Merge b97e3a7349 into merged_master (Bitcoin PR #18477 )
2020-11-26 01:08:06 +00:00
Andrew Poelstra
0e2b0efe75
Merge f3a91ab0ed into merged_master (Bitcoin PR #18438 )
2020-11-26 01:08:02 +00:00
Andrew Poelstra
bf3d25155f
Merge 7c94225026 into merged_master (Bitcoin PR #18430 )
2020-11-26 01:08:01 +00:00
Andrew Poelstra
ff1454245a
Merge d478a737db into merged_master (Bitcoin PR #18392 )
2020-11-26 01:08:00 +00:00
Andrew Poelstra
bf899b9e7f
Merge 16dfaed1b7 into merged_master (Bitcoin PR #18304 )
2020-11-26 01:07:52 +00:00
Andrew Poelstra
0bfe4eb6c4
Merge 5d92ac26ed into merged_master (Bitcoin PR #18264 )
2020-11-26 01:07:52 +00:00
Andrew Poelstra
cdeb19ce22
Merge 088604221b into merged_master (Bitcoin PR #18253 )
2020-11-26 01:07:48 +00:00
Andrew Poelstra
1ce4e7c713
Merge a674e89d27 into merged_master (Bitcoin PR #18162 )
2020-11-26 01:07:45 +00:00
Andrew Poelstra
e4c8881cdd
Merge eddcbfb109 into merged_master (Bitcoin PR #18166 )
2020-11-26 01:07:44 +00:00
Andrew Poelstra
464b206bfb
Merge 33861a8367 into merged_master (Bitcoin PR #18145 )
2020-11-26 01:07:43 +00:00
Andrew Poelstra
bca8bce3b7
Merge caa2f3af29 into merged_master (Bitcoin PR #12134 )
2020-11-26 01:07:42 +00:00
Andrew Poelstra
68844be4f2
Merge b063cb690f into merged_master (Bitcoin PR #18081 )
2020-11-26 01:07:41 +00:00
Andrew Poelstra
47d76259bf
Merge 22d11187ee into merged_master (Bitcoin PR #17398 )
2020-11-26 01:07:41 +00:00
Andrew Poelstra
5a603ed0ac
Merge c8ce2632eb into merged_master (Bitcoin PR #16392 )
2020-11-26 00:29:45 +00:00
Andrew Poelstra
6bdfee52c0
Merge 4a07233076 into merged_master (Bitcoin PR #17767 )
2020-11-14 16:52:11 +00:00
Andrew Poelstra
be24656ac4
Merge 2aaeca50b2 into merged_master (Bitcoin PR #17900 )
...
travis again..
2020-11-14 16:52:08 +00:00
Andrew Poelstra
7c53615bb6
Merge af05bd9e1e into merged_master (Bitcoin PR #17891 )
2020-11-14 16:52:07 +00:00
Andrew Poelstra
1e9eff8c6d
Merge 52900a764c into merged_master (Bitcoin PR #17849 )
2020-11-14 16:52:03 +00:00
Andrew Poelstra
009bc2fdfb
Merge 99813a9745 into merged_master (Bitcoin PR #17829 )
2020-11-14 16:52:02 +00:00
Andrew Poelstra
ce1aa041cb
Merge 890eac8f82 into merged_master (Bitcoin PR #17725 )
...
Another travis mess
2020-11-14 16:52:00 +00:00