mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-04-29 16:29:31 +02:00
Merge bitcoin/bitcoin#29144: init: handle empty settings file gracefully
e9014042a6settings: add auto-generated warning msg for editing the file manually (furszy)966f5de99ainit: improve corrupted/empty settings file error msg (furszy) Pull request description: Small and simple issue reported [here](https://community.umbrel.com/t/bitcoin-docker-container-keeps-restarting/2144). Improving a confusing situation reported by users who did not understand why a settings parsing error occurred when the file was empty and did not know how to solve it. Empty setting file could be due (1) corruption or (2) an user manually cleaning up the file content. In both scenarios, the 'Unable to parse settings file' error does not help the user move forward. ACKs for top commit: achow101: ACKe9014042a6hebasto: re-ACKe9014042a6. ryanofsky: Code review ACKe9014042a6. Just whitespace formatting changes and shortening a test string literal since last review shaavan: Code review ACKe9014042a6Tree-SHA512: 2910654c6b9e9112de391eedb8e46980280f822fa3059724dd278db7436804dd27fae628d2003f2c6ac1599b07ac5c589af016be693486e949f558515e662bec
This commit is contained in:
@@ -99,7 +99,9 @@ BOOST_AUTO_TEST_CASE(ReadWrite)
|
||||
// Check invalid json not allowed
|
||||
WriteText(path, R"(invalid json)");
|
||||
BOOST_CHECK(!common::ReadSettings(path, values, errors));
|
||||
std::vector<std::string> fail_parse = {strprintf("Unable to parse settings file %s", fs::PathToString(path))};
|
||||
std::vector<std::string> fail_parse = {strprintf("Settings file %s does not contain valid JSON. This is probably caused by disk corruption or a crash, "
|
||||
"and can be fixed by removing the file, which will reset settings to default values.",
|
||||
fs::PathToString(path))};
|
||||
BOOST_CHECK_EQUAL_COLLECTIONS(errors.begin(), errors.end(), fail_parse.begin(), fail_parse.end());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user