Andrew Poelstra
89ca8ea199
Merge b3ec1fe811 into merged_master (Bitcoin PR #18890 )
2020-11-26 01:09:01 +00:00
Andrew Poelstra
18a2a37ece
Merge b1b1739944 into merged_master (Bitcoin PR #18968 )
2020-11-26 01:09:00 +00:00
Andrew Poelstra
1044c64be3
Merge 17cfa52d38 into merged_master (Bitcoin PR #19172 )
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
195eb8a243
Merge 4ede05d421 into merged_master (Bitcoin PR #18758 )
2020-11-26 01:08:58 +00:00
Andrew Poelstra
d5082ffa37
Merge 39afe5b1c6 into merged_master (Bitcoin PR #19082 )
2020-11-26 01:08:58 +00:00
Andrew Poelstra
9324c8c542
Merge 365f1082e1 into merged_master (Bitcoin PR #19112 )
2020-11-26 01:08:58 +00:00
Andrew Poelstra
b8d665f61a
Merge b46fb5cb10 into merged_master (Bitcoin PR #19131 )
2020-11-26 01:08:58 +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
92f57dee9c
Merge bdedfcf076 into merged_master (Bitcoin PR #18974 )
2020-11-26 01:08:57 +00:00
Andrew Poelstra
c8459659ed
Merge 3657aee2d2 into merged_master (Bitcoin PR #18982 )
2020-11-26 01:08:56 +00:00
Andrew Poelstra
492c24eba5
Merge 45a1489997 into merged_master (Bitcoin PR #19122 )
2020-11-26 01:08:56 +00:00
Andrew Poelstra
207e69c339
Merge a8327fd71f into merged_master (Bitcoin PR #19072 )
2020-11-26 01:08:55 +00:00
Andrew Poelstra
927a580a42
Merge 07d0e0d59f into merged_master (Bitcoin PR #19044 )
2020-11-26 01:08:55 +00:00
Andrew Poelstra
b23acd5046
Merge dec067f5a0 into merged_master (Bitcoin PR #18965 )
2020-11-26 01:08:54 +00:00
Andrew Poelstra
531cdf3ca5
Merge 826fe9c667 into merged_master (Bitcoin PR #18807 )
2020-11-26 01:08:54 +00:00
Andrew Poelstra
29f0416f1c
Merge e478b11db0 into merged_master (Bitcoin PR #19110 )
2020-11-26 01:08:54 +00:00
Andrew Poelstra
9410608056
Merge c19fd96694 into merged_master (Bitcoin PR #19022 )
2020-11-26 01:08:54 +00:00
Andrew Poelstra
d38085da61
Merge 520e435b5e into merged_master (Bitcoin PR #18918 )
2020-11-26 01:08:51 +00:00
Andrew Poelstra
d79ece79c4
Merge 4af01b37d4 into merged_master (Bitcoin PR #19060 )
2020-11-26 01:08:50 +00:00
Andrew Poelstra
62a9d9569c
Merge 7d32cce3e7 into merged_master (Bitcoin PR #19010 )
2020-11-26 01:08:50 +00:00
Andrew Poelstra
3b7c182626
Merge 24f7029064 into merged_master (Bitcoin PR #18594 )
2020-11-26 01:08:49 +00:00
Andrew Poelstra
1fca452fcd
Merge b5c423c48e into merged_master (Bitcoin PR #19014 )
2020-11-26 01:08:49 +00:00
Andrew Poelstra
5800ec9196
Merge ccd85b57af into merged_master (Bitcoin PR #17681 )
2020-11-26 01:08:48 +00:00
Andrew Poelstra
d0b2badc94
Merge ad3a61c5f5 into merged_master (Bitcoin PR #18895 )
2020-11-26 01:08:48 +00:00
Andrew Poelstra
f785ad353f
Merge 99e5e21b38 into merged_master (Bitcoin PR #19023 )
2020-11-26 01:08:48 +00:00
Andrew Poelstra
13f4a26538
Merge cfe22a5f9e into merged_master (Bitcoin PR #18530 )
2020-11-26 01:08:47 +00:00
Andrew Poelstra
b29efd4af5
Merge 3eda7ea9ba into merged_master (Bitcoin PR #18764 )
2020-11-26 01:08:47 +00:00
Andrew Poelstra
e1d89a5742
Merge bd5ec7c528 into merged_master (Bitcoin PR #19006 )
2020-11-26 01:08:46 +00:00
Andrew Poelstra
2a9f3c220f
Merge aa8d76806c into merged_master (Bitcoin PR #17946 )
2020-11-26 01:08:46 +00:00
Andrew Poelstra
dccd3297b0
Merge 362f9c60a5 into merged_master (Bitcoin PR #18986 )
2020-11-26 01:08:45 +00:00
Andrew Poelstra
6a447f792f
Merge f8123d483c into merged_master (Bitcoin PR #18952 )
2020-11-26 01:08:45 +00:00
Andrew Poelstra
098fff6e44
Merge a9a6d946e4 into merged_master (Bitcoin PR #18888 )
2020-11-26 01:08:43 +00:00
Andrew Poelstra
39493d33b7
Merge 99c03728c0 into merged_master (Bitcoin PR #18878 )
2020-11-26 01:08:43 +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
bda1054131
Merge 7a5767423f into merged_master (Bitcoin PR #18808 )
2020-11-26 01:08:41 +00:00
Andrew Poelstra
34d072006e
Merge 376294cde6 into merged_master (Bitcoin PR #18866 )
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
e42dc5493b
Merge 7bcc42b403 into merged_master (Bitcoin PR #18873 )
2020-11-26 01:08:39 +00:00
Andrew Poelstra
e991e7713b
Merge d96fdc2a39 into merged_master (Bitcoin PR #18741 )
2020-11-26 01:08:38 +00:00
Andrew Poelstra
d4711bdf91
Merge 23c926d859 into merged_master (Bitcoin PR #18699 )
2020-11-26 01:08:37 +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
2d0adcc65b
Merge 844d2070a2 into merged_master (Bitcoin PR #18828 )
2020-11-26 01:08:35 +00:00
Andrew Poelstra
503f615f81
Merge a66ba6d029 into merged_master (Bitcoin PR #18576 )
2020-11-26 01:08:35 +00:00
Andrew Poelstra
87ae5b27e7
Merge 36c0abd8f6 into merged_master (Bitcoin PR #18726 )
2020-11-26 01:08:34 +00:00
Andrew Poelstra
252c3a223c
Merge 978c5a2122 into merged_master (Bitcoin PR #18485 )
2020-11-26 01:08:33 +00:00