sipa
commented at 2:17 am on April 7, 2020:
member
The previous code for MainSignalsInstance::Clear would decrement the reference
count of every interface, including ones that were already Unregister()ed but
still being executed.
I wrote a test for the bug that fails without the fix and passes with it: 4ba1627fb99ea46836e0d73ad1682b4b184124be (branch)
Feel free to use the test here and squash into the fix commit.
ryanofsky approved
ryanofsky
commented at 12:30 pm on April 7, 2020:
member
Note: This PR fixes a bug in an internal function. The fix doesn’t affect behavior of bitcoind, the gui, or any utilities because the function isn’t currently called in a way that would trigger the bug
promag
commented at 6:23 pm on April 7, 2020:
member
Do not clear validationinterface entries being executed
The previous code for MainSignalsInstance::Clear would decrement the reference
count of every interface, including ones that were already Unregister()ed but
still being executed.
3c61abbbc8
Add test for UnregisterAllValidationInterfaces bug
Bug in MainSignalsInstance::Clear could cause validation interface callbacks to
be deleted during execution if UnregisterAllValidationInterfaces was called
more than once.
Bug was introduced in https://github.com/bitcoin/bitcoin/pull/18524 and is
fixed by https://github.com/bitcoin/bitcoin/pull/18551
2276339a17
sipa force-pushed
on Apr 7, 2020
sipa
commented at 7:58 pm on April 7, 2020:
member
@ryanofsky Cherry-picked. Also updated the PR description to say it’s not currently observable.
ryanofsky approved
ryanofsky
commented at 8:04 pm on April 7, 2020:
member
Code review ACK2276339a176f83ffe8ceefb3e41ecca8601aa13b. No change to bugfix, just rebased and new test commit added since last review
jonasschnelli
commented at 10:10 am on April 8, 2020:
contributor
utACK2276339a176f83ffe8ceefb3e41ecca8601aa13b - reviewed code and test (thanks @ryanofsky for adding the test).
MarcoFalke
commented at 12:42 pm on April 8, 2020:
member
EDIT: Actually that diff link is misleading because appveyor builds branches merged with master. Still it seems pretty likely the new unregister_all_during_call test is causing this
ryanofsky
commented at 1:29 pm on April 8, 2020:
member
Could disable this if appveyor failures cause problems for other PRs:
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2024-12-19 12:12 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me