validation: Stricter assumeutxo error handling in LoadChainstate
Make LoadChainstate return an explicit error when snapshot validation succeeds,
but there is an error trying to replace the background chainstate with the
snapshot chainstate. Previously in this case LoadChainstate would trigger a
shutdown and return INTERRUPTED, now it will return an actual error code.There's no real change to behavior other than error message being formatted a
little differently.Motivation for this change is to replace error handling via callbacks with
error handling via return value ahead of
https://github.com/bitcoin/bitcoin/pull/27861
https://github.com/bitcoin/bitcoin/pull/27862/commits/1c7d08b9acd33aff343228ada7e058e606cb1062
validation: Stricter assumeutxo error handling in InvalidateCoinsDBOnDisk
Currently InvalidateCoinsDBOnDisk is calling AbortNode without an error to the
caller if it fails. Change it to return just return util::Result, and update
the caller to handle the error itself.This causes the secondary error to be shown below the main error instead of the
other way around.
https://github.com/bitcoin/bitcoin/pull/27862/commits/1c7d08b9acd33aff343228ada7e058e606cb1062
This is a backport of core#27862