HomePhabricator

Merge #17192: util: Add CHECK_NONFATAL and use it in src/rpc

Description

Merge #17192: util: Add CHECK_NONFATAL and use it in src/rpc

Summary:
faeb6665362e35f573ad715ade0ef2db62d71839 util: Add CHECK_NONFATAL and use it in src/rpc (MarcoFalke)

Pull request description:

Fixes #17181

Currently, we use `assert` in RPC code to document logic and code assumptions. However, it seems a bit extreme to abort all of Bitcoin Core on an assert failure in one of the RPC threads. I suggest to replace all `assert`s with a macro `CHECK_NONFATAL(condition)` that throws a runtime error when the condition evaluates to `false`. That runtime error will then be returned to the rpc caller and will include instructions to report the error to our issue tracker.

ACKs for top commit:

practicalswift:
  ACK faeb6665362e35f573ad715ade0ef2db62d71839
laanwj:
  ACK faeb6665362e35f573ad715ade0ef2db62d71839
ryanofsky:
  Code review ACK faeb6665362e35f573ad715ade0ef2db62d71839

Tree-SHA512: 9b748715a5e0767ac11f1324a95a3a6ec672a0e0658013492219223bda83ce4b1b447fd8183bbb235f7df5ef7dddda7666ad569544b4d61cc65f232ca7a800ec

Backport of Core PR17192

This is an out-of-order backport so that the older backports can be done without the asserts like here.

Test Plan:

make
test_runner.py

ninja
test_runner.py

Reviewers: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, deadalnix

Subscribers: deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D5746

Details

Provenance
Wladimir J. van der Laan <laanwj@protonmail.com>Authored on Oct 28 2019, 10:56
nakihitoCommitted on Apr 20 2020, 17:09
deadalnixPushed on Apr 20 2020, 17:48
Reviewer
Restricted Owners Package
Differential Revision
D5746: Merge #17192: util: Add CHECK_NONFATAL and use it in src/rpc
Parents
rSTAGINGc12ec9d8c98f: [backport#15891] test: Require standard txs in regtest by default
Branches
Unknown
Tags
Unknown